码迷,mamicode.com
首页 > 编程语言 > 详细

算法面试题

时间:2015-09-10 14:31:16      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:

1.给定一个字符串,按单词将该字符串逆序,比如给定"This is a sentence",则输出是"sentence a is This",为了简化问题,字符串中不包含标点符号。
分两步
1 先按单词逆序得到"sihT si a ecnetnes"
2 再整个句子逆序得到"sentence a is This"

public class test {
	public static void main(String[] args) {
//		Scanner in = new Scanner(System.in);
//		String str = new String();
//		while(in.hasNext()){
//			
//			str= in.nextLine();
			String str = "hello world girl abcd";
			char[] chs = str.toCharArray();
			reverseWords(chs, 0, str.length()-1);
			int left = 0,right;
		
			for(int i = 0; i<str.length();i++){
				if(chs[i] == ‘ ‘){
					right = i-1;
					reverseWords(chs, left , right);
					left = i+1;
				}else{
					right = i;
				}
				if(right == str.length()-1){
					reverseWords(chs, left , right);
				}
			}
			for(char s:chs){
				System.out.print(s);
			}
//		}
	}
	
	public static void reverseWords(char[] str, int i, int j){
		while(i<j){
			char temp = str[i];
			str[i] = str[j];
			str[j] = temp;
			i++;
			j--;
		}
	}


算法面试题

标签:

原文地址:http://my.oschina.net/elain/blog/504331

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!