题目
Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order.
Example:
Input: "Let's take LeetCode contest"
Output: "s'teL ekat edoCteeL tsetnoc"
这个比较简单一些,分词然后反序即可以,先贴上自己的实现,再看下更好的方法。
class Solution {
public String reverseWords(String s) {
String[] splited = s.split(" ");
StringBuilder sb = new StringBuilder();
for (String item : splited) {
for (int i = item.length(); i > 0; i--) {
sb.append(item.charAt(i - 1));
}
sb.append(" ");
}
sb.deleteCharAt(sb.length() - 1);
return sb.toString();
}
}
贴一个其他的实现,这个大体也只能这样了,稍微调整了下对单个词的反序方式,这里是用的 stringBuilder的reverse
实现的。还有其他的解决方法,是直接前后换位置来手动实现的倒序。其他也没啥区别了,这个倒是没看到黑科技。
public String reverseWords(String s) {
String[] str = s.split(" ");
for (int i = 0; i < str.length; i++) str[i] = new StringBuilder(str[i]).reverse().toString();
StringBuilder result = new StringBuilder();
for (String st : str) result.append(st + " ");
return result.toString().trim();
}
这里的下一题,继续加在这里吧,比较简单和类似
题目 2
Write a function that takes a string as input and returns the string reversed.
public String reverseString(String s) {
return new StringBuilder(s).reverse().toString();
}
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于