您的位置:首页 > 其它

LintCode- 翻转字符串

2015-11-10 21:53 169 查看
翻转字符串

给定一个字符串,逐个翻转字符串中的每个单词。

样例

给出s = “the sky is blue”,返回”blue is sky the”

说明

单词的构成:无空格字母构成一个单词

输入字符串是否包括前导或者尾随空格?可以包括,但是反转后的字符不能包括

如何处理两个单词间的多个空格?在反转字符串中间空格减少到只含一个

//方法一
public class Solution {
/**
* @param s : A string
* @return : A string
*/
public String reverseWords(String s) {
ArrayList<String> arr = new ArrayList<String>();
if(s==""){
return "";
}
for(int i = 0; i<s.length();i++ ){
while(i<s.length()&&s.charAt(i)==' '){
i++;
}
int a = i;
while(i<s.length()&&s.charAt(i)!=' '){
i++;
}
int b = i;
if(i==s.length()-1){
arr.add(s.substring(a));
break;
}
arr.add(s.substring(a, b));
}
String re = "";
Collections.reverse(arr);
for(String x : arr){
re = re + " "+x;
}
return re.substring(1).trim();
}
}

//方法二

public class Solution {
/**
* @param s : A string
* @return : A string
*/
public String reverseWords(String s) {
String [] a = s.split(" ");
String re ="";
for(int i =a.length-1;i>-1;i--){
if(i==0){
re = re+a[i];
}else{
re = re + a[i] + " ";
}
}
return re;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  字符串