小工具知识网

当前位置: 首页 > 行业知识 > 重拾C++之菜鸟刷算法第5篇---字符串

行业知识

重拾C++之菜鸟刷算法第5篇---字符串

2026-11-04 05:16:43 来源:互联网转载

今天分享���字符串题目都比较简单,明天单独写一篇关于KMP+字符串,这个对于本菜鸟来说还是难度太高了 ┭┮﹏┭┮,如果有大佬能分享一下见解那就太棒了。下面进入正题 ~

()

一、反转字符串

题目

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。

()

不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。

344. 反转字符串 - 力扣(LeetCode)

题解

class Solution {public:    void reverseString(vector& s) {        int length = s.size() - 1;        for(int i = 0; i   

二、反转字符串 II

题目

给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。

  • 如果剩余字符少于 k 个,则将剩余字符全部反转。

  • 如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。

    541. 反转字符串 II - 力扣(LeetCode)

    题解

    class Solution {public:    void reverse(string &str, int start, int end){        for(int i = start, j = end; i  '0'){            count++;        }    }        int oldSize = s.size();    s.resize(s.size() + count * 5);    int newSize = s.size();        for(int i = newSize - 1, j = oldSize - 1; j >= 0; j--, i--){        if(s[j]  '9'){            s[i] = s[j];        }        else{            s[i] = 'r';            s[i-1] = 'e';            s[i-2] = 'b';            s[i-3] = 'm';            s[i-4] = 'u';            s[i-5] = 'n';            i -= 5;        }    }    cout

上一篇:实现安卓连接阿里云物联网平台(2)

下一篇:闲来麻将房卡免费攻略揭秘!赢牌秘籍大放送!