leetcode-344-反轉字串(reverse string)-java
阿新 • • 發佈:2019-01-27
題目及測試用例
package pid344;
/*反轉字串
編寫一個函式,其作用是將輸入的字串反轉過來。
示例 1:
輸入: "hello"
輸出: "olleh"
示例 2:
輸入: "A man, a plan, a canal: Panama"
輸出: "amanaP :lanac a ,nalp a ,nam A"
*/
public class main {
public static void main(String[] args) {
String [] testTable = {"hello","A man, a plan, a canal: Panama" ,"av12,./34\\45"};
for (String ito : testTable) {
test(ito);
}
}
private static void test(String ito) {
Solution solution = new Solution();
String rtn;
long begin = System.currentTimeMillis();
System.out.print(ito);
System.out .println();
//開始時列印陣列
rtn= solution.reverseString(ito);//執行程式
long end = System.currentTimeMillis();
System.out.println(":rtn" );
System.out.print(rtn);
System.out.println();
System.out.println("耗時:" + (end - begin) + "ms");
System.out.println("-------------------" );
}
}
解法1(成功,5ms,速度較慢)
建立一個stringbuilder,將string的順序 charAt(i) 插入stringbuilder,最後再轉為字串
package pid344;
import java.util.Arrays;
public class Solution {
public String reverseString(String s) {
//相當於重寫stringbuilder的reverse方法
StringBuilder build=new StringBuilder();
int length=s.length();
for(int i=0;i<length;i++){
build.append(s.charAt(length-1-i));
}
return build.toString();
}
}
解法2(別人的,2ms,很快)
將字串化為char陣列,前後用temp顛倒
public class Solution {
public String reverseString(String s) {
int length = s.length();
char[] str = s.toCharArray();
for(int i = 0;i < length / 2;i++){
char temp = str[i];
str[i] = str[length - 1 - i];
str[length - 1 - i] = temp;
}
return new String(str);
}
}