刷题笔记-1374. 生成每种字符都是奇数个的字符串

92 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第30天,点击查看活动详情

一、题目描述:

1374. 生成每种字符都是奇数个的字符串 - 力扣(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分为n-1,1二者显然都是奇数

输出n-1个a,1个b

当n为奇数时

直接输出n个a即可

三、AC 代码:

class Solution {
public:
    string generateTheString(int n) {
        string s;
        if(n%2==0)
        {
            for(int i=0;i<n-1;i++)
            {
                s+='a';
            }
            for(int i=0;i<1;i++)
            {
                s+='b';
            }
        }
        else
        {
            for(int i=0;i<=n-1;i++)
            {
                s+='a';
            }
        }
        return s;
    }
};

四、总结:

接近双百,以为自己想简单了,没想到是题目简单。

五、参考:

执行用时 : 1 ms , 在所有 Java 提交中击败了 98.27% 的用户 内存消耗 : 37.1 MB , 在所有 Java 提交中击败了 100.00% 的用户 - 生成每种字符都是奇数个的字符串 - 力扣(LeetCode)

C :全部某种字符,分奇偶改最后一个字符 - 生成每种字符都是奇数个的字符串 - 力扣(LeetCode)