Reverse Words in a String
2016-05-07 11:08
309 查看
题:
Givenaninputstring,reversethestringwordbyword.
Forexample,
Givens="
return"
题意:字符串反转(去除重复的空格)。
分析:
1,要求删除开头和结尾的多余空格。
2,如果两个单词之间有多余空格的话,也要删除。
一:两个指针,一个指针cur只顾着从右往左走,另一个指针wordEnd始终占据单词后面的那个空格,这样每次cur发现空格的时候substring(cur+1,wordEnd)就是该单词。需要注意的是,题目说得很明确,需要注意leading和trailing的空格要去掉,还有中间连续的空格需要变成一个,所以需要有判断条件wordEnd-1>cur,保证连续空格的情况下不会被写到字符串里面去,只有真正的单词出现的时候才需要append空格。
publicclassSolution{
publicStringreverseWords(Strings){
intwordEnd=s.length();
intcur=wordEnd-1;
StringBuildersb=newStringBuilder();
while(cur>=0){
if(s.charAt(cur)==''){
if(wordEnd-1>cur){
if(sb.length()>0)
sb.append('');
sb.append(s.substring(cur+1,wordEnd));
}
wordEnd=cur;
}
cur--;
}
if(wordEnd-1>cur){
if(sb.length()>0)
sb.append('');
sb.append(s.substring(0,wordEnd));
}
returnsb.toString();
}
}
二:利用stack
实现:
publicstaticvoidmain(String[]args){
Stringstr="theskyisblue";
Stack<string>stack=newStack<>();
String[]strArray=str.split("");
for(Strings:strArray){
stack.push(s);
}
StringBuildersb=newStringBuilder();
while(!stack.empty()){
sb.append(stack.pop()).append("");
}
System.out.println(sb);
}
参考:http://blog.csdn.net/lanxu_yy/article/details/38827845
[/code]
Givenaninputstring,reversethestringwordbyword.
Forexample,
Givens="
theskyisblue",
return"
blueisskythe".
题意:字符串反转(去除重复的空格)。
分析:
1,要求删除开头和结尾的多余空格。
2,如果两个单词之间有多余空格的话,也要删除。
一:两个指针,一个指针cur只顾着从右往左走,另一个指针wordEnd始终占据单词后面的那个空格,这样每次cur发现空格的时候substring(cur+1,wordEnd)就是该单词。需要注意的是,题目说得很明确,需要注意leading和trailing的空格要去掉,还有中间连续的空格需要变成一个,所以需要有判断条件wordEnd-1>cur,保证连续空格的情况下不会被写到字符串里面去,只有真正的单词出现的时候才需要append空格。
二:利用stack
实现:
Stringstr="theskyisblue";
Stack<string>stack=newStack<>();
String[]strArray=str.split("");
for(Strings:strArray){
stack.push(s);
}
StringBuildersb=newStringBuilder();
while(!stack.empty()){
sb.append(stack.pop()).append("");
}
System.out.println(sb);
}
参考:http://blog.csdn.net/lanxu_yy/article/details/38827845
[/code]
相关文章推荐
- 智能预判 (三:布局加强)
- Linux与windows多系统引导
- 字符/字符串 查找函数
- Hibernate入门(一)之 hibernate的配置,运行流程以及优缺点解析
- RCFile 简介及其应用
- 【CodeVS4244】平衡树练习
- 重新学javaweb ---- DbUtils
- AWK命令详解
- Max Sequence
- AOJ 0121:Seven Puzzle(bfs)
- 零基础学python》(第二版)
- 杀僵尸进程备忘
- unity 控制移动的方法
- 在糖尿病患者信息管理系统中,导入病人信息功能!
- 我的第二个springboot项目 web+freemarker
- Android之Matrix的用法
- iOS IPv6-only
- ZooKeeper分布式过程协同技术详解
- java 中对对象的调用
- java输入输出