LeetCode-探索-初级-字符串-反转字符串-java
2019-01-01 10:36
375 查看
编写一个函数,其作用是将输入的字符串反转过来。
示例 1:
[code]输入: "hello" 输出: "olleh"
示例 2:
[code]输入: "A man, a plan, a canal: Panama" 输出: "amanaP :lanac a ,nalp a ,nam A"
方法可以有很多,任君选择,总体思路就是反转数组即可:
1.反转方式
2.循环的"/2"可以利用">>1"替代d
后面是我写的几种方法:
[code]public String reverseString(String s) { char[] chars = s.toCharArray(); int limit = chars.length / 2; int symmetryI = 0; for (int i = 0 ; i < limit ; i ++) { symmetryI = chars.length - 1 - i; chars[i] = (char) (chars[i] ^ chars[symmetryI]); chars[symmetryI] = (char)(chars[i] ^ chars[symmetryI]); chars[i] = (char)(chars[i] ^ chars[symmetryI]); } return new String(chars); } public String reverseString0(String s) { char[] chars = s.toCharArray(); int limit = chars.length >> 1; char temp = 0; int symmetryI = 0; for (int i = 0 ; i < limit ; i ++) { symmetryI = chars.length - 1 - i; temp = chars[i]; chars[i] = chars[symmetryI]; chars[symmetryI] = temp; } return new String(chars); } public String reverseString1(String s) { char[] chars = s.toCharArray(); char[] target = new char[chars.length]; for (int i = chars.length - 1 ; i >= 0 ; i --) target[chars.length - 1 - i] = chars[i]; return new String(target); } public String reverseString2(String s) { return new StringBuilder(s).reverse().toString(); }
利用位运算来进行 /2 或者两个数交换的技巧在之前应该说过,不在赘述
相关文章推荐
- LeetCode-探索-初级-字符串-整数反转-java
- LeetCode-探索-初级-字符串-有效的字母异位词-java
- LeetCode-探索-初级-字符串-字符串中的第一个唯一字符-java
- leetcode初级算法 字符串1 反转字符串
- leetcode解题之344. Reverse String & 345. Reverse Vowels of a String Java版(反转字符串)
- 【LeetCode-面试算法经典-Java实现】【151-Reverse Words in a String(反转字符串中的单词)】
- LeetCode探索模块初级算法字符串章节python3代码实现
- [leetcode, python] Reverse Words in a String 反转字符串
- 【字符串反转总结】Java中七种方法实现
- 【Java基础】总结java将字符串反转的7个方法
- 关于java字符串反转的实现
- leetcode 反转字符串 (C++实现)
- java 对字符串指定部分进行反转
- java-基础-String操作字符串反转
- 【LeetCode】字符串反转函数的几个算法 Reverse String
- 使用Java自带的方法反转字符串
- leetcode:541反转字符串
- 对字符串进行简单的字符数字统计 探索java中的List功能
- Java 字符串反转实现
- 初识Java,初出茅庐:字符串实现反转的几种方法