示例:
输入: s =”abcdefg”, k = 2
输出:“bacdfeg”
要求:
- 该字符串只包含小写的英文字母。
- 给定字符串的长度和 k 在[1, 10000]范围内。
解决方法:
算法思想:
/**
* 0 k 2k 3k
*|———–|———–|———–|—
* +-reverse-+ +-reverse-+
*/
左侧指针的递加规则是从0开始,然后left += 2*k。
然后处理每2k序列中的前k个序列
对前后两个指针,i = left和j=left + k – 1之间的字符进行swap。(需要注意边界情况,j不能超过字符串的最大长度)
C++代码:
C代码(效率不高):
Java代码:
明日题目预告:
反转字符串中的单词III
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。
示例 1:
输入: "Let's take LeetCode contest"
输出: "s'teL ekat edoCteeL tsetnoc"
注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。
原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/89216.html