来源:力扣(LeetCode)
描述:
给你一个整数 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"
提示:
- 1 <= n <= 500
方法:分类讨论
思路与算法
当 n 为奇数时,我们返回 n 个 ‘a’ 组成的字符串。
当 n 为偶数时,我们返回 n − 1 个 ‘b’ 组成的字符串。
代码:
class Solution {
public:
string generateTheString(int n) {
if (n % 2 == 1) {
return string(n, 'a');
}
return string(n - 1, 'a') + 'b';
}
};
执行用时:0 ms, 在所有 C++ 提交中击败了100.00%的用户
内存消耗:6.1 MB, 在所有 C++ 提交中击败了57.33%的用户
复杂度分析
时间复杂度: O(n)。
空间复杂度: O(1)。这里不计入返回值需要的空间。
author:LeetCode-Solution
该博客介绍了一种根据输入整数n生成含有奇数次字符的字符串的方法。当n为奇数时,返回全'a'字符串;为偶数时,返回'n-1'个'a'加一个'b'的字符串。代码实现简洁,时间复杂度为O(n),空间复杂度为O(1)。
1190

被折叠的 条评论
为什么被折叠?



