面试题38:翻转句子中单词的顺序,单词内字符的顺序不变
2013-09-05 10:46
375 查看
题目:给出一个英文句子,翻转句子中单词的顺序,单词内字符的顺序不变。
例如:"I am a student."输出"student. a am I"
思路:先翻转整个句子,然后翻转单词
代码如下:
运行结果:
例如:"I am a student."输出"student. a am I"
思路:先翻转整个句子,然后翻转单词
代码如下:
#include "stdafx.h" #include <iostream> using namespace std; //题目:给出一个英文句子,翻转句子中单词的顺序,单词内字符的顺序不变。 //例如:"I am a student."输出"student. a am I" //思路:先翻转整个句子,然后翻转单词 //逆置长度为nLength的字符串str void Reverse(char str[], int nLength) { if (str == NULL || nLength == 0) { return; } char temp = 'a'; for (int i=0; i<nLength/2; i++) { temp = str[i]; str[i] = str[nLength-i-1]; str[nLength-i-1] = temp; } } void ReverseSentence(char str[]) { if (str == NULL) { return; } //翻转整个句子 Reverse(str, strlen(str)); cout << str << endl; int nIndex = 0; int nStart = 0; int nCount = 0; while (nIndex < (int)strlen(str) ) { while (str[nIndex] == ' ')//对于字符串以若干空格符开始和中间有若干连续空格的情况 { nIndex++; } nStart = nIndex; while (str[nIndex] != ' ' && nIndex < strlen(str)) { nIndex++; nCount++; } //翻转句子中的单词 Reverse(str+nStart, nCount); nCount = 0; } } int _tmain(int argc, _TCHAR* argv[]) { //char str[] = "I am a student."; char str[] = " I am a student. "; ReverseSentence(str); cout << str << endl; system("pause"); return 0; }
运行结果:
相关文章推荐
- 面试题:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。
- 面试题:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。
- 题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student
- C++: 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。
- 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。 句子中单词以空格符隔开。为简单起见,没有标点符号。 例如输入“I am a student”,则输出“student a
- 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。
- (Java)输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变,句子中单词以单个空格符隔开
- 每天学习一点编程(2)(输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变)
- 每天学习一算法系列(10)(输入一句英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变,句子中单词以空格符隔开)
- 翻转句子中单词的顺序,但单词内字符的顺序不变
- 翻转句子内单词的顺序,但单词内字符顺序不变,包括标点
- java算法实现之--输入一个英文句子,翻转句子中的单词顺序,但单词内字符的顺序不变
- "输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。 句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。 例如输入“I am a student.”,则输出“student
- 输入一个英文句子,翻转句子中单词的顺序,单词内字符顺序不变
- 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。(笔试题) 句子中单词以空格符隔开。为简单起见,没有标点符号。 例如输入“I am a student”,则输出“student a
- 翻转句子中单词的顺序,单词内字符顺序不变(写得很烂)
- 输入一个英文句子,翻转句子中单词的顺序,但单词内字符顺序不变
- 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。
- 翻转句子中单词的顺序,但单词内字符的顺序不变
- 2014-04-09 单词内部翻转,顺序不变(谷歌面试题)