首页 > 编程语言 >【leetcode_C++_字符串_day7】344_反转字符串&541_反转字符串II&&剑指Offer_05_替换空格&&151_翻转字符串里的单词&&剑指Offer58-II_左旋转字符串.md

【leetcode_C++_字符串_day7】344_反转字符串&541_反转字符串II&&剑指Offer_05_替换空格&&151_翻转字符串里的单词&&剑指Offer58-II_左旋转字符串.md

时间:2022-10-26 16:13:58浏览次数:74  
标签:空格 string int 反转 II && 字符串 单词

344. 反转字符串

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

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

示例 1:

输入:s = ["h","e","l","l","o"]
输出:["o","l","l","e","h"]

示例 2:

输入:s = ["H","a","n","n","a","h"]
输出:["h","a","n","n","a","H"]

思路:

比较简单,没啥好说的

class Solution {
public:
    void reverseString(vector<char>& s) {
        char tmp[1] ;

        for(int i=0;i<(s.size())/2;i++)
        {
            tmp[0]=s[i];
            s[i]=s[s.size()-i-1];
            s[s.size()-i-1]=tmp[0];
        }
    }
};

541.反转字符串 II

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

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

示例 1:

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

示例 2:

输入:s = "abcd", k = 2
输出:"bacd"

思路:

一些同学可能为了处理逻辑:每隔2k个字符的前k的字符,写了一堆逻辑代码或者再搞一个计数器,来统计2k,再统计前k个字符。

正是在下

标签:空格,string,int,反转,II,&&,字符串,单词
From: https://www.cnblogs.com/MLcaigou/p/16828752.html

相关文章