解法一
public class Solution {
public String reverseWords(String s) {
String[] strs=s.split(" ");
String res="";
for(int i=0;i<strs.length;i++){
res+=new StringBuilder(strs[i]).reverse().toString();
if(i!=strs.length-1)res+=" ";
}
return res;
}
}
利用StringBuilder实现字符串翻转,在344中我字符串翻转是自己实现的,比该方法要快。
解法二
public class Solution {
private void reverse(char[] a, int i, int j) {
while(i<j) {
char t = a[i]; a[i] = a[j]; a[j] = t;
j--; i++;
}
}
public String reverseWords(String s) {
char[] a = s.toCharArray();
int index = s.indexOf(' ');
int start = 0;
while(index != -1) {
reverse(a, start, index - 1);
start = index + 1;
index = s.indexOf(' ', start);
}
reverse(a, start, s.length() - 1);
return String.valueOf(a);
}
}
自己实现的字符串翻转,比解法一快许多。
网友评论