首页 > 其他分享 >力扣541 反转字符串2

力扣541 反转字符串2

时间:2022-12-13 21:00:35浏览次数:53  
标签:字符 String 反转 力扣 541 字符串 个字符 2k

题目:

给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。
如果剩余字符少于 k 个,则将剩余字符全部反转。
如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。

示例:

输入:s = "abcdefg", k = 2
输出:"bacdfeg"

思路:

跟着题目意思走,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符(可调用344中的反转函数),其他做剪枝处理。

class Solution {
    public String reverseStr(String s, int k) {
        char[] ch = s.toCharArray();
        
        for(int i=0;i<ch.length;i+=2*k){
            // 2. 剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符
             if (i + k <= ch.length) {
                reverse(ch, i, i + k -1);
                continue;
            }
            // 3. 剩余字符少于 k 个,则将剩余字符全部反转
            reverse(ch, i, ch.length - 1);
        }
        return new String(ch);
    }

    public void reverse(char[] ch,int i,int j){//反转字符串
        while(i<j){
            char temp=ch[i];
            ch[i]=ch[j];
            ch[j]=temp;
            i++;
            j--;
        }
    }
}

 

标签:字符,String,反转,力扣,541,字符串,个字符,2k
From: https://www.cnblogs.com/cjhtxdy/p/16980606.html

相关文章

  • SQLite: 多行合并字符串、字串转多行
    网络收集整理如下: CREATETABLEt_email(email_idINTEGERPRIMARYKEYAUTOINCREMENT,schedule_idINTEGER,line_idINTEGER,mail_gro......
  • Python字符串格式化的三种方式
     #方式一:%name='张三'age=20score=22.556print('%s的年龄为:%d,成绩%f'%(name,age,score))#%3s为此处占3个字符位,不够3位前面空位#%04d为此处占4个......
  • 字符串相关类
    String类代表不可变的字符序列StringBuilder类和StringBuffer类代表可变字符序列。String类源码分析String类对象代表不可变的Unicode字符序列,因此我们可以将......
  • 字符串的hash函数
    字符串的hash函数:(1)unsignedintSDBMHash(char*str){unsignedinthash=0;while(*str){//等价于:hash=65599*hash+(*str++);......
  • JavaScript中比较字符串的4种方法
    严格平等要确定字符串是否相等,可以使用严格相等运算符。如果字符串不同,则返回,如果字符串相同,则返回===false trueconsts1='learn';consts2='today';console......
  • 力扣-31-下一个排列
    很明显,对于一个排列而言,最后一个位置是动不了的那么就从倒数第二个位置开始用递归一点点分析错了几次之后终于自己写出来了(叉腰骄傲)voidnextPermutation(vector<int>&......
  • 【C语言】进阶指针Ⅰ 字符串指针、常量字符串、指针数组、指针数组使用常见。
    ......
  • enum转字符串
    顶一个enum///<summary>///输入法语言。///</summary>publicenumLanguage{///<summary>///默认,不管他。///......
  • 力扣-49-字母异位词分组
    字母异位词就是:组成单词的字母相同,只是字母位置不同的单词没什么思路,朴素思路,先全部放到set里,然后不空就取一个出来,回溯构造所有的异位词和set中匹配public:vector<......
  • 力扣每日一题2022.12.12---1832. 判断句子是否为全字母句
    全字母句指包含英语字母表中每个字母至少一次的句子。给你一个仅由小写英文字母组成的字符串sentence,请你判断 sentence是否为全字母句。如果是,返回true;否则,返回......