刷题(六):1374. 生成每种字符都是奇数个的字符串

1374. 生成每种字符都是奇数个的字符串

给你一个整数 n,请你返回一个含 n 个字符的字符串,其中每种字符在该字符串中都恰好出现 奇数次 。

返回的字符串必须只含小写英文字母。如果存在多个满足题目要求的字符串,则返回其中任意一个即可。

示例 1:

输入:n = 4输出:"pppz"解释:"pppz" 是一个满足题目要求的字符串,因为 'p' 出现 3 次,且 'z' 出现 1 次。当然,还有很多其他字符串也满足题目要求,比如:"ohhh" 和 "love"。

class Solution {
    public String generateTheString(int n) {
         StringBuilder builder = new StringBuilder();
        if(n == 0){
            return "";
        }else if(n % 2 == 1){
            for(int i=0;i<n;i++){
                builder.append("a");
            }
            return builder.toString();
        }else{
            for(int i=0;i<n-1;i++){
                builder.append("a");
            }
            builder.append("b");
            return builder.toString();
        }

    }
}

2、预填充,根据奇偶调整即可

public String generateTheString(int n) {
    char[] arr = new char[n];
    Arrays.fill(arr, 'a');
    if (n % 2 == 1) return new String(arr);

    arr[0] = 'b';
    return new String(arr);
}

3、相关知识

Arrays.fill()函数

用法1: Arrays.fill( a1, value );    a1是一个数组变量,value是一个a1中元素数据类型的值,作用:填充a1数组中的每个元素都是value
例如:
         boolean[] a1 = new boolean[5];
        Arrays.fill( a1,true );
        结果:  a1[] = {true,true,true,true,true};

用法2:String[] a9 = new String[6];
        Arrays.fill(a9, "Hello");
        Arrays.fill(a9, 3, 5,"World");
        结果: a9[] = {Hello,Hello,Hello,World,World,Hello};
第一个参数指操作的数组,第二个和第三个指在该数组的某个区域插入第四个参数,第二个参数指起始元素下标(包含该下标),第三个参数指结束下标(不包含该下标),注意:java的数组下标从0开始

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值