【LeetCode】344. Reverse String
来源:互联网 发布:淘宝最新规则在哪里看 编辑:程序博客网 时间:2024/06/12 01:39
问题描述
问题链接:https://leetcode.com/problems/reverse-string/#/description
Write a function that takes a string as input and returns the string reversed.
Example:
Given s = "hello", return "olleh".
我的代码
探索过程
这么简单的需求,我本来以为肯定一把过啊,于是写出了下面的代码。
public class Solution { public String reverseString(String s) { /* 可能有内建的函数,但是我不记得了,就用charAt遍历吧。 */ String reverStr = ""; int len = s.length(); for(int i = len - 1; i >= 0; i--){ reverStr += s.charAt(i); } return reverStr; }}
提交以后居然报告我运行超时,原因是最后的一个testcase是一个超长的文本。我的那句reverStr += s.charAt(i);
肯定效率差极了。
得想办法提高一下效率。先新建一个char数组,然后倒序赋值,最后转成String返回。这次就通过了。
通过的代码
public class Solution { public String reverseString(String s) { /* 可能有内建的函数,但是我不记得了,就用charAt遍历吧。 */ int len = s.length(); char[] chs = new char[len]; for(int i = len - 1; i >= 0; i--){ chs[len - 1 - i] += s.charAt(i); } return new String(chs); }}
打败了22.3%的Java代码。再到讨论区去学习一个。
讨论区
[JAVA] Simple and Clean with Explanations [6 Solutions]
链接地址:https://discuss.leetcode.com/topic/43296/java-simple-and-clean-with-explanations-6-solutions
这篇给出了6种方法,还进行了复杂度的分析比较,奈何我没耐心看完(苦笑)。
Java- easiest method- 2-line code, attached another method
链接地址:https://discuss.leetcode.com/topic/44869/java-easiest-method-2-line-code-attached-another-method
嗯,我果然没错,是有内建方法的。
//method 1: use StringBuilderpublic String reverseString(String s) { StringBuilder sb = new StringBuilder(s); return sb.reverse().toString();}//method 2: use swap methodpublic String reverseString(String s){ if(s == null || s.length() == 0) return ""; char[] cs = s.toCharArray(); int begin = 0, end = s.length() - 1; while(begin <= end){ char c = cs[begin]; cs[begin] = cs[end]; cs[end] = c; begin++; end--; } return new String(cs);}
1 0
- leetcode--344. Reverse String
- LeetCode 344. Reverse String
- LeetCode 344. Reverse String
- Leetcode:344. Reverse String
- LeetCode *** 344. Reverse String
- LeetCode *** 344. Reverse String
- [leetcode] 344. Reverse String
- <LeetCode>344. Reverse String
- Leetcode.344. Reverse String
- LeetCode-344.Reverse String
- [leetcode]344. Reverse String
- Leetcode 344. Reverse String
- [leetcode] 344. Reverse String
- [Leetcode]344. Reverse String
- LeetCode - 344. Reverse String
- [leetcode]344. Reverse String
- LeetCode 344. Reverse String
- 【Leetcode】344. Reverse String
- Java单例模式知识点详解
- (转)Android 开发 对话框Dialog dismiss和hide方法的区别
- Gradle项目中gradle.build文件中的buildScript代码块
- [机器学习]推荐系统之协同过滤算法
- 杀死进程
- 【LeetCode】344. Reverse String
- Python进阶(五)-浅谈python匿名函数
- 字符串个数
- C#使用RenderControl将GridView控件导出到EXCEL的方法
- HRBUST1150-相识
- SQLServer控制用户访问权限表
- PorterDuffXferMode不正确的真正原因PorterDuffXferMode深入试验
- 继承与多态虚函数分析
- iOS开发之