第六天 Reverse String

第六天了,这次是根据面试出现几率最高第100题里选择的,好吧,继续选择了一道比较简单的,而且是之前用Java写过的。

https://leetcode-cn.com/problems/reverse-string/description/

字符串反转,嗯,实在没想到pyton可以有这么作弊的写法:

class Solution:
    def reverseString(self, s):
        """
        :type s: str
        :rtype: str
        """
        return s[::-1]

开始我第一次写的时候,还是依次遍历出来字符,放到一个列表,然后用列表逆置的方法,最后在join成字符串。

class Solution:
    def reverseString(self, s):
        """
        :type s: str
        :rtype: str
        """
        ret = ""
        arr = []
        for c in s:
            arr.append(c)
        for item in reversed(arr):
            ret += ret.join(item)
        return ret

嗯,今天刷题时忽然感到,用python的一种深深的“作弊”感。😂

不过就算是用python的内置的方法,跑完所有的test case也需要44ms。而之前用java写的却只要5ms,😭

其实正常比较合理的思路,应该是首尾交换的思路:

public class Solution {
    public String reverseString(String s) {
        if (s == null) return null;
        if (s.length() == 0 || s.length() == 1) return s;
        char[] chars = s.toCharArray();
        int i = 0;
        int j = chars.length-1;
        while (i<j){
            char temp = chars[i];
            chars[i++] = chars[j];
            chars[j--] = temp;
        }
        return new String(chars);
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容