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);
        }
    }

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

  • 相关阅读:
    MYSQL 日志参数与性能的关系
    mybatis 中 foreach collection的三种用法
    SqlServer查找引用存储过程的地方_字段在哪些表中
    ubuntu中sudo不用输入密码配置
    matlab练习程序(罗德里格斯变换)
    matlab练习程序(多边形扩展算法)
    matlab练习程序(生成gif图片)
    python3 mac环境 生成pdf
    requests 爬取 台州市 履行中状态的合同附件
    个人支付方案(免签约)-支付宝当面付
  • 原文地址:https://www.cnblogs.com/miaowu1314/p/6132934.html
Copyright © 2011-2022 走看看