码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode笔记:344. Reverse String

时间:2016-05-03 18:41:15      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:

问题:

Write a function that takes a string as input and returns the string reversed.
Example:
Given s = “hello”, return “olleh”.

大意:

写一个函数获取输入的字符串然后返回反转后后的字符串。
比如:
给出s = “hello”,返回”olleh”

思路:

思路很直接就想到,先把字符串拆分成一个个字符组成的数组,新建一个空字符串,然后从数组的最后一个字符往前遍历,每遍历一个都将其拼接到新字符处后面去,遍历完了就解决了。由于拼接的方式有很多,效率也各不相同,所以查了资料之后,选择了StringBuilder的方式,据说速度最快,但有线程安全的问题,而且只有JDK5支持。

代码(Java):

public class Solution {
    public String reverseString(String s) {
        char[] sCharArr = s.toCharArray();// 拆分成数组
        StringBuilder sb = new StringBuilder();
        for (int i = sCharArr.length - 1; i >= 0; i--) {
            // 遍历添加到末尾
            sb.append(sCharArr[i]);
        }
        return sb.toString();
    }
}

由于数据不够,也看不出我的速度比起别人到底如何,但我在项目中确实发现简单的用”+”来拼接字符串在量大了以后真的会非常慢,所以有其他方法的话还是尽量不要直接用”+”号了。

他山之石:

Discuss中看到一行代码解决的,也是用StringBuilder:

public class Solution {
    public String reverseString(String s) {
        return  new StringBuilder(s).reverse().toString();
    }
}

所以熟悉原生支持的方法真的很重要= =


版权所有:http://blog.csdn.net/cloudox_

LeetCode笔记:344. Reverse String

标签:

原文地址:http://blog.csdn.net/cloudox_/article/details/51298380

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!