翻转句子中单词的顺序

原创 2015年11月20日 19:57:55

1. 题目:

输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。

例如输入“He is a good boy.”,则输出“boy. good a is He”

2. 思路:

先将整个句子翻转,得到”.yob doog a si eH“, 然后将单词反转,得到“boy. good a is He”

反转的思路:将要反转的字符序列的第0位与length-1位交换,第1位与length-2位交换,以此类推。。。

3. 代码

public class WordReverse {
    char[] sentence;
    public WordReverse(char[] words){
        this.sentence = words;
    }
    
    public char[] reverse(int start, int end, char words[]){
        int i = start;
        int j = end;
        if(start<0 || end >= words.length || start > end)    return null;
        while(i < j){
            char tmp = words[i];
            words[i] = words[j];
            words[j] = tmp;
            i++; j--;
        }
        return words;
    }
    public char[] senReverse(char sentence[]){
        int i =0, j = 0, len = sentence.length;
        reverse(0, len-1, sentence);
        while(i<len && j<=len){
            j++;
            if(j == len || ' ' == sentence[j]){
                reverse(i, j-1, sentence);
                j++;
                i = j;
            }
        }
        return sentence;
    }
    
    public static void main(String args[]){
        Scanner in = new Scanner(System.in);
        System.out.println("Please print a sentance:");
        char sentence[] = in.nextLine().toCharArray();
        WordReverse wrReverse = new WordReverse(sentence);
        sentence = wrReverse.senReverse(sentence);
        for (char c : sentence) {
            System.out.print(c);
        }
    }
}


java算法实现之--输入一个英文句子,翻转句子中的单词顺序,但单词内字符的顺序不变

此题经常在笔试题中遇到,故特记录于此
  • u010485626
  • u010485626
  • 2014年10月22日 20:46
  • 2295

每天学习一点编程(2)(输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变)

输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。  例如输入“I am a student.”,则输出“student...
  • zmmdyyyc
  • zmmdyyyc
  • 2014年04月29日 20:58
  • 770

第10题:翻转句子中单词的顺序

欢迎转载,转载请务必注明出处:http://blog.csdn.net/alading2009/article/details/44906243 第10题:输入一个英文句子,翻转句子中单词的顺序,但...
  • alading2009
  • alading2009
  • 2015年04月06日 21:24
  • 766

面试题:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。

#include #include using namespace std; char *Fun(char temp[]) { int len = strlen(temp); //cout
  • taotaoah
  • taotaoah
  • 2016年09月26日 10:23
  • 557

翻转句子中单词的顺序 C语言

C语言 字符串 算法
  • moxiaopeng
  • moxiaopeng
  • 2014年08月10日 15:55
  • 5206

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

题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。 为简单起见,标点符号和普通字母一样处理。 例如输入“I am a student.”,则输出“stude...
  • jiadebin890724
  • jiadebin890724
  • 2012年09月03日 10:04
  • 8891

单词翻转(4种思路,C/C++代码)

单词翻转
  • duan19920101
  • duan19920101
  • 2016年05月19日 16:08
  • 2351

剑指Offer面试题42(Java版):反转单词顺序VS左旋转字符串

题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串为“I am a Student.",则输出为”Student. a am...
  • jsqfengbao
  • jsqfengbao
  • 2015年08月10日 20:48
  • 2888

题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student

转自:http://www.360doc.com/content/12/0313/16/1429048_194040867.shtml 谢谢观...
  • Luyouzhen
  • Luyouzhen
  • 2015年10月09日 18:17
  • 2064

Wikioi 天梯 单词翻转(1205)

题目描述 Description 给出一个英语句子,希望你把句子里的单词顺序都翻转过来 输入描述 Input Description 输入包括一个英语句子。 ...
  • u011638948
  • u011638948
  • 2013年08月08日 22:03
  • 729
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:翻转句子中单词的顺序
举报原因:
原因补充:

(最多只允许输入30个字)