描述

写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。(字符串长度不超过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)

最后

大家可以去 【牛客网-题库-在线编程】去练习一下。
可以去微信搜索:【蘑菇睡不着】交个朋友~
也可以扫描下方二维码。

图片说明