Solution 10: 翻转句子中的单词

问题描述

输入一个句子,翻转句子中单词的顺序,但是单词内字符的顺序不变。

 

解决思路

(1) 整体翻转;

(2) 单词翻转。

 

程序

public class ReverseWords {
	public String reverseWords(String s) {
		if (s == null || s.length() == 0) {
			return null;
		}

		char[] cc = s.toCharArray();
		reverseString(cc, 0, cc.length - 1);

		int i = 0, j = 0;
		while (j < cc.length) {
			if (cc[j] == ' ') {
				reverseString(cc, i, j - 1);
				i = j + 1;
			}
			if (j == cc.length-1) {
				reverseString(cc, i, j);
			}
			++j;
		}
		
		return String.valueOf(cc);
	}

	private void reverseString(char[] cc, int i, int j) {
		while (i <= j) {
			char tmp = cc[i];
			cc[i] = cc[j];
			cc[j] = tmp;
			++i;
			--j;
		}
	}
}

 

posted @ 2015-07-02 10:23  Chapter  阅读(148)  评论(0编辑  收藏  举报