首页 > 代码库 > leetcode_557 Reverse Words in a String III(String)
leetcode_557 Reverse Words in a String III(String)
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 1:
Input: "Let‘s take LeetCode contest" Output: "s‘teL ekat edoCteeL tsetnoc"
public class Solution { public String reverseWords(String s) { String[] ans=s.split(" "); StringBuilder sb=new StringBuilder(); for(int i=0;i<ans.length;i++){ for(int j=ans[i].length()-1;j>=0;j--){ sb.append(ans[i].charAt(j)); } sb.append(" "); } return sb.toString().trim(); } }
my solution:把每个单词分割出来,改变顺序,再存入StringBuilder中(占用了多余的空间)
leetcode solution:
public String reverseWords(String s) { char[] s1 = s.toCharArray(); int i = 0; for(int j = 0; j < s1.length; j++) { if(s1[j] == ‘ ‘) { reverse(s1, i, j - 1); i = j + 1; } } reverse(s1, i, s1.length - 1); return new String(s1); } public void reverse(char[] s, int l, int r) { while(l < r) { char temp = s[l]; s[l] = s[r]; s[r] = temp; l++; r--; } }
leetcode_557 Reverse Words in a String III(String)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。