Reverse Words in a String
来源:互联网 发布:mac图片处理 编辑:程序博客网 时间:2024/05/17 23:12
1.题目
给定一个字符串,逐个翻转字符串中的每个单词。
- 单词的构成:无空格字母构成一个单词
- 输入字符串是否包括前导或者尾随空格?可以包括,但是反转后的字符不能包括
- 如何处理两个单词间的多个空格?在反转字符串中间空格减少到只含一个
给出s = "the sky is blue",返回"blue is sky the"
2.算法
public String reverseWords(String s) { // write your code s = s.trim(); return helper(s, 0).toString(); } public StringBuilder helper(String s, int index) { if (index >= s.length()) //当递归到最后时,返回空 { return new StringBuilder(); } StringBuilder cur = new StringBuilder(); //当前字母 int lastIndex = index; //标记第一个 while (index < s.length() && s.charAt(index) != ' ') { cur.append(s.charAt(index++)); //找字母 } while (index < s.length() && s.charAt(index) == ' ') { index++; //空格就往前走 } if (lastIndex == 0) //如果是第一个字母,不用加空格 { return helper(s, index).append(cur); } return helper(s, index).append(cur).append(" "); //递归下一个字母 }
算法的基本步骤是
1.从前往后,见到单词就把它加到前面
public String reverseWords(String s) { // write your code if (s == null) { return null; } s = s.trim(); if (s.length() == 0) { return ""; } StringBuilder sb = new StringBuilder(); for (int i = s.length() - 1; i >= 0; i--) //反转字符串,并把多余空格去掉,两单词中只留一个空格 { if (i != s.length() - 1 && s.charAt(i) == ' ' && s.charAt(i) == s.charAt(i + 1)) { continue; } sb.append(s.charAt(i)); } int left = 0; //把单词反转 int right = 0; while (right < sb.length()) { while (right < sb.length() && sb.charAt(right) != ' ') { right++; } int next = right + 1; right--; while (left < right) { char temp = sb.charAt(left); sb.setCharAt(left++, sb.charAt(right)); sb.setCharAt(right--, temp); } left = next; right = next; } return sb.toString(); }
算法基本步骤是
先把整个串反转并且同时去掉多余的空格,然后再对反转后的字符串对其中的每个单词进行反转,比如"the sky is blue",先反转成"eulb si yks eht",然后在对每一个单词反转,得到"blue is sky the"
0 0
- Reverse words in a string.
- Reverse Words in a String
- Reverse Words in a String
- Reverse Words in a String
- Reverse Words in a String
- Reverse Words in a String
- Reverse Words in a String
- Reverse Words in a String
- Reverse Words in a String
- Reverse Words in a String
- Reverse Words in a String
- Reverse Words in a String
- Reverse Words in a String
- Reverse Words in a String
- Reverse Words in a String
- Reverse Words in a String
- Reverse Words in a String
- Reverse Words in a String
- jboss启动错误原因
- 杭电2091空心三角形
- Maven Failsafe 插件
- 题库统计的小玩意_python
- 《iOS移动开发从入门到精通》图书连载6——Xcode8的使用(下)
- Reverse Words in a String
- 【每日一记】设计模式——备忘录模式
- vector容器类的使用
- 北纬数码专营店奇遇记
- APP测试方法总结
- 如何利用老域名SEO优化快速上百度首页
- 【Unity&Shader】NGUI实现图集变灰功能
- bzoj 3043: IncDec Sequence 差分
- 【codeforces 550D】Regular Bridge