题目描述
给你一个整数 n
,请你返回一个含 n
个字符的字符串,其中每种字符在该字符串中都恰好出现 奇数次。
返回的字符串必须只含小写英文字母。如果存在多个满足题目要求的字符串,则返回其中任意一个即可。
样例
输入:n = 4
输出:"pppz"
解释:"pppz" 是一个满足题目要求的字符串,因为 'p' 出现 3 次,且 'z' 出现 1 次。
当然,还有很多其他字符串也满足题目要求,比如:"ohhh" 和 "love"。
输入:n = 2
输出:"xy"
解释:"xy" 是一个满足题目要求的字符串,因为 'x' 和 'y' 各出现 1 次。
当然,还有很多其他字符串也满足题目要求,比如:"ag" 和 "ur"。
输入:n = 7
输出:"holasss"
限制
1 <= n <= 500
算法
(构造) $O(n)$
- 如果
n
为奇数,则直接返回n
个a
。 - 否则,返回
n - 1
个a
外加 1 个b
。
时间复杂度
- 构造答案需要 $O(n)$ 的时间。
空间复杂度
- 需要额外 $O(n)$ 的空间存储答案。
C++ 代码
class Solution {
public:
string generateTheString(int n) {
if (n & 1)
return string(n, 'a');
return string(n - 1, 'a') + "b";
}
};