• 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
  • 相关阅读:
    PUPANVR-LVGL UI主菜单及设置窗体框架(9)
    Ajax跨域问题
    存在重复元素(C++解法)
    谷歌禁止Deepfake项目研究
    外汇天眼:全员免费,赢奖金!
    50、Spring WebFlux 的 自动配置 的一些介绍,与 Spring MVC 的一些对比
    【ES6知识】Iterator迭代器与 class类
    【QT--使用百度地图API显示地图并绘制路线】
    windows系统git使用ssh方式和gitee/github进行同步
    微信公众号里怎么实现预订房间功能
  • 原文地址:https://blog.csdn.net/weixin_43327597/article/details/127775764