编程的反转字符串 II

示例:

输入: s =”abcdefg”, k = 2

输出:“bacdfeg”

要求:

  1. 该字符串只包含小写的英文字母。
  2. 给定字符串的长度和 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

Like (0)
guozi的头像guozi
Previous 2024年6月4日
Next 2024年6月4日

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注