给你一个整数 n
,请你返回一个含 _n
_个字符的字符串,其中每种字符在该字符串中都恰好出现 奇数次 。
返回的字符串必须只含小写英文字母。如果存在多个满足题目要求的字符串,则返回其中任意一个即可。
示例 1:
**输入:** n = 4
**输出:** "pppz"
**解释:** "pppz" 是一个满足题目要求的字符串,因为 'p' 出现 3 次,且 'z' 出现 1 次。当然,还有很多其他字符串也满足题目要求,比如:"ohhh" 和 "love"。
示例 2:
**输入:** n = 2
**输出:** "xy"
**解释:** "xy" 是一个满足题目要求的字符串,因为 'x' 和 'y' 各出现 1 次。当然,还有很多其他字符串也满足题目要求,比如:"ag" 和 "ur"。
示例 3:
**输入:** n = 7
**输出:** "holasss"
提示:
方法一:分类讨论
思路与算法
当 n 为奇数时,我们返回 n 个 `a’ 组成的字符串。
当 n 为偶数时,我们返回 n-1 个 a' 和一个
b’ 组成的字符串。
代码
[sol1-C++]1 2 3 4 5 6 7 8 9
| class Solution { public: string generateTheString(int n) { if (n % 2 == 1) { return string(n, 'a'); } return string(n - 1, 'a') + 'b'; } };
|
[sol1-Java]1 2 3 4 5 6 7 8 9
| class Solution { public String generateTheString(int n) { StringBuffer sb = new StringBuffer(); if (n % 2 == 1) { return sb.append("a".repeat(n)).toString(); } return sb.append("a".repeat(n - 1)).append("b").toString(); } }
|
[sol1-C#]1 2 3 4 5 6 7 8 9
| public class Solution { public string GenerateTheString(int n) { StringBuilder sb = new StringBuilder(); if (n % 2 == 1) { return new string('a', n); } return new string('a', n - 1) + "b"; } }
|
[sol1-Python3]1 2 3 4 5
| class Solution: def generateTheString(self, n: int) -> str: if n % 2 == 1: return "a" * n return "a" * (n - 1) + "b"
|
[sol1-C]1 2 3 4 5 6 7 8 9 10
| char * generateTheString(int n) { char * ans = (char *)malloc(sizeof(char) * (n + 1)); memset(ans, 'a', sizeof(char) * n); ans[n] = '\0'; if (n % 2 == 1) { return ans; } ans[n - 1] = 'b'; return ans; }
|
[sol1-Golang]1 2 3 4 5 6
| func generateTheString(n int) string { if n%2 == 1 { return strings.Repeat("a", n) } return strings.Repeat("a", n-1) + "b" }
|
[sol1-JavaScript]1 2 3 4 5 6 7
| var generateTheString = function(n) { const sb = ''; if (n % 2 === 1) { return sb + 'a'.repeat(n);; } return sb + 'a'.repeat(n - 1) + 'b'; };
|
复杂度分析