784. Letter Case Permutation

2018/04/28 leetcode 共 737 字,约 3 分钟

Title

the problem link

Given a string S, we can transform every letter individually to be lowercase or uppercase to create another string. Return a list of all possible strings we could create.

Examples:
Input: S = "a1b2"
Output: ["a1b2", "a1B2", "A1b2", "A1B2"]

Input: S = "3z4"
Output: ["3z4", "3Z4"]

Input: S = "12345"
Output: ["12345"]
Note:

S will be a string with length at most 12. S will consist only of letters or digits.

结果是不看重顺序的

Solution

//cpp:
//String参数可以不为引用,就是顺序的差别
class Solution {
public:
	void f(string &s, int i, vector<string> &v) {
		if (i == s.length()) {
			v.push_back(s);
			return;
		}
		f(s, i + 1, v);
		if (isalpha(s[i])) {
			s[i] = isupper(s[i]) ? tolower(s[i]) : toupper(s[i]);
			f(s, i + 1, v);
		}
	}
	vector<string> letterCasePermutation(string S) {
		vector<string> res;
		f(S, 0, res);
		return res;
	}
};


Search

    Table of Contents