zoukankan      html  css  js  c++  java
  • LeetCode344---Reverse String

    开始刷leetcode了,记录做过的题目以及做题过程思路的整理,还会贴出自己认为的别人写的好的代码,会不定期的更新~~~~

    Question Content:

    Write a function that takes a string as input and returns the string reversed.

    Example:
    Given s = "hello", return "olleh".

    Solution:

    第一种解法:最直接,最容易想出的解决办法是直接循环字符串,然后倒序输出,代码如下:

    public class Solution {
        public String reverseString(String s) {
           String result = "";
               for (int i = s.length()-1; i >=0; i--) {
                   result+=s.charAt(i);
            }
               return result;
        }
    }

    提交的时候发现超时了。。。

    后来尝试换一种拼接方式,使用StringBuilder,Stringbuffer也是可以的,在不考虑线程安全的情况下,StringBuilder的效率更高;

    使用StringBuilder的append方法,代码如下:

    public class Solution {
        public String reverseString(String s) {
           StringBuilder sbBuilder = new StringBuilder();
               for (int i = s.length()-1; i >=0; i--) {
                   sbBuilder.append(s.charAt(i));
            }
               return sbBuilder.toString();
            }
    }

    提交成功。

    时间复杂度都是o(n),但是使用“+”拼接的速度更慢

    第二种解法:考虑减少时间复杂度,定义两个数组下标,依次交换字符串的第一个字符和最后一个字符,再输出新的字符串即可,代码如下:

    public class Solution {
        public String reverseString(String s) {
           char[] tmparray = s.toCharArray();
            int i = 0;
            int j = tmparray.length-1;
            char tmp = ' ';
            while(i<j){
                tmp = s.charAt(i);
                tmparray[i] = tmparray[j];
                tmparray[j] = tmp;
                i++;
                j--;
            }    
            return String.valueOf(tmparray);
        }
    }

    这种解法循环次数减少一半,降低了时间复杂度,相应的会增加空间复杂度。

  • 相关阅读:
    HBase(2) Java 操作 HBase 教程
    HBase(1) 基本入门篇
    MongoDB 谨防索引seek的效率问题
    MongoDB一次节点宕机引发的思考(源码剖析)
    MongoDB-系统时钟跳变引发的风波
    是什么造成了数据库的卡顿
    了解 MongoDB 看这一篇就够了
    Reactive(3)5分钟理解 SpringBoot 响应式的核心-Reactor
    Reactive(2) 响应式流与制奶厂业务
    suanec-rotatelogs
  • 原文地址:https://www.cnblogs.com/miaowu1314/p/6132934.html
Copyright © 2011-2022 走看看