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"

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/generate-a-string-with-characters-that-have-odd-counts

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。


解题思路

1、先循环 n - 1, 对 字母 a 进行拼接
2、判断 n 是否是奇数
    2、1 如果是奇数,再拼接一个 a 即可
    2、2 若不是奇数,再拼接一个其他字母即可

较好力扣题解

1、判断 n 是否是奇数
1、1、如果是奇数,直接对字母 a 使用 repeat 方法复制 n 次
1、2、如果是不是奇数,直接对字母 a 使用 repeat 方法复制 n - 1 次
再拼接一个其他字母即可

题解

let generateTheString = function(n) {
    let str = ''
    // 先循环 n - 1, 对 字母 a 进行拼接
    for (let i = 0; i < n - 1; i++) {
        str += 'a'   
    }
    // 判断 n 是否是奇数
    if (n % 2) {
        // 如果是奇数,再拼接一个 a 即可
        return str += 'a'
    }
    // 若不是奇数,再拼接一个其他字母即可
    return str += 'b'
    
}

较好力扣题解

let generateTheString = function(n) {
    let str = ''
    // 先循环 n - 1, 对 字母 a 进行拼接
    for (let i = 0; i < n - 1; i++) {
        str += 'a'   
    }
    // 判断 n 是否是奇数
    if (n % 2) {
        // 如果是奇数,再拼接一个 a 即可
        return str += 'a'
    }
    // 若不是奇数,再拼接一个其他字母即可
    return str += 'b'
    
}

猜你喜欢

转载自www.cnblogs.com/linjunfu/p/12652658.html