leetcode-541. 反转字符串 II刷题笔记(c++)

写在前面

  • 难度:简单
  • 翻转子串前it, it+k个字符 + 翻转末尾剩余子串
    • string::iterator
    • reverse

题目详情

给定一个字符串 s 和一个整数 k,你需要对从字符串开头算起的每隔 2k 个字符的前 k 个字符进行反转。

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

示例:

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

提示:

该字符串只包含小写英文字母。
给定字符串的长度和 k 在 [1, 10000] 范围内。

ac代码

class Solution
{
public:
    string reverseStr(string s, int k)
    {
        string::iterator it;
        for(it=s.begin(); it < s.end(); it+=2*k)
        {
            if(it+k < s.end())
                reverse(it, it+k);
            else
                reverse(it, s.end());
        }
        return s;
    }
};
  • 参考文章
    • LeetCode 541.反转字符串 II (Reverse String II) C++

你可能感兴趣的:(leetcode,反转字符串,II,string_iterator,c++)