题解 | #反转字符串#
反转字符串
http://www.nowcoder.com/practice/c3a6afee325e472386a1c4eb1ef987f3
描述
写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)
示例1
输入: "abcd" 返回值: "dcba"
思路
这道题思路还是挺好想的,反转字符串,咱们可以使用“双指针”的思想来做。首先在字符串头部设立一个指针,字符串尾部设立一个指针。然后首尾指针对应的元素进行交换,交换之后首指针向后移动一位,尾指针向前移动一位。
AC代码
public String solve (String str) { // write code here if (str == null || str.length() < 2) { return str; } int length = str.length() - 1; int start = 0, end = length; char[] ch = str.toCharArray(); while(end > start) { char temp = ch[start]; ch[start] = ch[end]; ch[end] = temp; start ++; end --; } return String.valueOf(ch); }
时间复杂度:O(N),N 为字符串长度
空间复杂度:O(1)
最后
大家可以去 【牛客网-题库-在线编程】去练习一下。
可以去微信搜索:【蘑菇睡不着】交个朋友~
也可以扫描下方二维码。