您的位置:首页 > 其它

LeetCode:Reverse Words in a String

2014-10-24 11:21 239 查看
题目比较简单,需要注意两个连续的空格的时候输出为一个空格。

如果输入只有空格,应返回空字符串。

public class Solution {
	public String reverseWords(String s) {
		int begin = s.length() - 1;
		StringBuilder sb = new StringBuilder();
		int i = s.length() - 1;
        while (i >= 0) {
        	char c = s.charAt(i);
        	if (c == ' ') {
        		for (int j = i + 1; j <= begin; j++) {
        			sb.append(s.charAt(j));
        		}
        		if (begin > i) {
        			sb.append(s.charAt(i));
        		}
        		while (i >= 0 && s.charAt(i) == ' ') {
        			i--;
        		}
        		begin = i;
        	} else {
        		i--;
        	}
        }
        
        for (int j = 0; j <= begin; j++) {
			sb.append(s.charAt(j));
		}
        
        return sb.toString().trim();
    }
	
	public static void main(String[] args) {
		Solution s = new Solution();
		String ss = s.reverseWords(" a b c");
		System.out.println(ss.length());
		System.out.println(ss);
	}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: