门户网站包括哪些,新版wordpress头像,做网站实训总结,太原网站建设需求多嘛题目#xff1a;344. 反转字符串
编写一个函数#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。
不要给另外的数组分配额外的空间#xff0c;你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 示例 1#xff1a;
输入…题目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] 提示
1 s.length 105s[i] 都是 ASCII 码表中的可打印字符
代码
class Solution {public void reverseString(char[] s) {int left 0;int right s.length - 1;while(left right) {s[left] ^ s[right];//构造 a ^ b 的结果并放在 a 中s[right] ^ s[left];//将 a ^ b 这一结果再 ^ b 存入b中此时 b a, a a ^ bs[left] ^ s[right];//a ^ b 的结果再 ^ a 存入 a 中此时 b a, a b 完成交换left;right--;}}
}
思考
这个题很简单要学的就是 ^ 操作交换数据也可以用tmp交换 题目541. 反转字符串 II 给定一个字符串 s 和一个整数 k从字符串开头算起每计数至 2k 个字符就反转这 2k 字符中的前 k 个字符。
如果剩余字符少于 k 个则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个则反转前 k 个字符其余字符保持原样。 示例 1
输入s abcdefg, k 2
输出bacdfeg示例 2
输入s abcd, k 2
输出bacd提示
1 s.length 104s 仅由小写英文组成1 k 104 代码
class Solution {public String reverseStr(String s, int k) {int size s.length();char[] c s.toCharArray();int index 0;while(size 2*k) {reverseString(c,index,index k - 1);index 2*k;size - 2*k;}if(size k) {reverseString(c,index,index k - 1);}else {reverseString(c,index,c.length - 1);}return new String(c);}public void reverseString(char[] s,int left,int right) {while(left right) {s[left] ^ s[right];//构造 a ^ b 的结果并放在 a 中s[right] ^ s[left];//将 a ^ b 这一结果再 ^ b 存入b中此时 b a, a a ^ bs[left] ^ s[right];//a ^ b 的结果再 ^ a 存入 a 中此时 b a, a b 完成交换left;right--;}}
} 思考
此题也利用了上一题的字符串翻转也可以用库函数。值得注意的是最后返回是new String(c);
还有要读懂题