一、题目描述
题目原文:
请编写一个函数,其功能是将输入的字符串反转过来。
示例:
输入:s = "hello"
返回:"olleh"
二、题目分析
思路1:用python中切片的操作反向输出即可。(例如:s[ : : -1])
思路2:创建列表对象,利用下标反向交换字符串内容。(python中str对象不能改变,所以创建可改变的列表对象)
三、Python代码
class Solution(object): def reverseString(self, s): """ :type s: str :rtype: str """ #法1:用切片操作 return s[::-1] #法2:反向循环,创建列表,利用下标反向交换即可。(count为反向循环的下标控制) result = list(s) lenth = len(s) count = lenth while count > 0: result[lenth - count] = s[count - 1] count -= 1 return ''.join(result)
四、Java代码
class Solution { //先将字符串转为字符数组,用StringBuilder暂存反向循环内容。 public String reverseString(String s) { StringBuilder sb = new StringBuilder(); char[] sb_array = s.toCharArray(); for(int i = s.length()-1; i >= 0; i--){ sb.append(sb_array[i]); } return new String(sb); } }
五、其他
英文题目链接:https://leetcode.com/problems/reverse-string/
中文题目链接:https://leetcode-cn.com/problems/reverse-string/
Runtime: Python:法一:47ms,法二: 80ms
Java:5ms
想法不够优化,欢迎大家留言交流~