• 2138. 将字符串拆分为若干长度为 k 的组-力扣双百代码


    2138. 将字符串拆分为若干长度为 k 的组-力扣双百代码

    字符串 s 可以按下述步骤划分为若干长度为 k 的组:

    第一组由字符串中的前 k 个字符组成,第二组由接下来的 k 个字符串组成,依此类推。每个字符都能够成为 某一个 组的一部分。
    对于最后一组,如果字符串剩下的字符 不足 k 个,需使用字符 fill 来补全这一组字符。
    
    • 1
    • 2

    注意,在去除最后一个组的填充字符 fill(如果存在的话)并按顺序连接所有的组后,所得到的字符串应该是 s 。

    给你一个字符串 s ,以及每组的长度 k 和一个用于填充的字符 fill ,按上述步骤处理之后,返回一个字符串数组,该数组表示 s 分组后 每个组的组成情况 。

    示例 1:

    输入:s = “abcdefghi”, k = 3, fill = “x”
    输出:[“abc”,“def”,“ghi”]
    解释:
    前 3 个字符是 “abc” ,形成第一组。
    接下来 3 个字符是 “def” ,形成第二组。
    最后 3 个字符是 “ghi” ,形成第三组。
    由于所有组都可以由字符串中的字符完全填充,所以不需要使用填充字符。
    因此,形成 3 组,分别是 “abc”、“def” 和 “ghi” 。

    示例 2:

    输入:s = “abcdefghij”, k = 3, fill = “x”
    输出:[“abc”,“def”,“ghi”,“jxx”]
    解释:
    与前一个例子类似,形成前三组 “abc”、“def” 和 “ghi” 。
    对于最后一组,字符串中仅剩下字符 ‘j’ 可以用。为了补全这一组,使用填充字符 ‘x’ 两次。
    因此,形成 4 组,分别是 “abc”、“def”、“ghi” 和 “jxx” 。

    这一题其实也挺简单,但是我给大家提供的代码是比较有新意的,可以学习一下:

    /**
     * Note: The returned array must be malloced, assume caller calls free().
     */
    char ** divideString(char * s, int k, char fill, int* returnSize){
        int len=strlen(s);
    
        char **re=(char **)malloc(sizeof(char *)*(len/k+1));
        for(int i=0;i<len/k+1;i++){
            re[i]=(char *)malloc(sizeof(char)*(k+1));
            re[i][k]='\0';
        }
         int i;
        for( i=0;i<len;i++){
    
            re[i/k][i%k]=s[i];
        }
        while(i%k!=0){
            re[i/k][i%k]=fill;
            i++;
           
    
        }
       
        * returnSize=len/k+(len%k?1:0);
     
        return  re;
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
  • 相关阅读:
    The significance of void 0 in JS
    Jira使用浅谈篇一
    从XML配置角度理解Spring AOP
    【重拾C语言】八、表单数据组织——结构体(类型、类型别名、直接/间接访问;典例:复数、成绩单)
    ChatGLM2-6B 部署与微调
    Linux入门——文件查找与压缩
    OpenAI 的 GPTs 提示词泄露攻击与防护实战:攻击卷(一)
    LeetCode_专项突破之SQL入门
    软件测试|Python自动化测试实现的思路
    外卖小程序开发指南:打造完美的点餐体验
  • 原文地址:https://blog.csdn.net/weixin_43327597/article/details/127775764