# 反转字符串
随笔 : 这题确实比较简单了 用双指针就能轻松写出
# 题目:
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组
s的形式给出。不要给另外的数组分配额外的空间,你必须 ** 原地修改输入数组 **、使用 O (1) 的额外空间解决这一问题。
示例 1:
1
2 输入:s = ["h","e","l","l","o"]
输出:["o","l","l","e","h"]示例 2:
1
2 输入:s = ["H","a","n","n","a","h"]
输出:["h","a","n","n","a","H"]提示:
1 <= s.length <= 105s[i]都是 ASCII 码表中的可打印字符
# 题解
1 | public class Solution { |
# 题目进阶
给定一个字符串
s和一个整数k,从字符串开头算起,每计数至2k个字符,就反转这2k字符中的前k个字符。
- 如果剩余字符少于
k个,则将剩余字符全部反转。- 如果剩余字符小于
2k但大于或等于k个,则反转前k个字符,其余字符保持原样。示例 1:
1
2 输入:s = "abcdefg", k = 2
输出:"bacdfeg"示例 2:
1
2 输入:s = "abcd", k = 2
输出:"bacd"提示:
1 <= s.length <= 104s仅由小写英文组成1 <= k <= 104
进阶版本 我在模拟过程的时候 确实忽略了 for 循环中 计数器可以直接 + 2 * k 来进行区间跳跃
导致写出来的判断比较复杂
# 题解
1 | public string ReverseStr(string s, int k) { |
C++ :
1 | class Solution { |