【python+Java】【leetcode】【算法题目344—Reverse String】

一、题目描述

题目原文:

请编写一个函数,其功能是将输入的字符串反转过来。

示例:

输入: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

想法不够优化,欢迎大家留言交流~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值