第六题 反转字符串,单词内部顺序不变
2014-04-09 16:34
344 查看
题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。
例如输入“I am a student.”,则输出“student. a am I”。
例如输入“I am a student.”,则输出“student. a am I”。
//翻转句子中单词的顺序 #include <iostream> using namespace std; void Reverse(char *pBegin, char *pEnd) { if(pBegin == nullptr || pEnd == nullptr) return; while(pBegin < pEnd) { char temp = *pBegin; *pBegin = *pEnd; *pEnd = temp; pBegin ++, pEnd --; } } char* ReverseSentence(char *&pData) { if(pData == nullptr) return nullptr; char *pBegin = pData; char *pEnd = pData + strlen(pData) - 1; Reverse(pBegin, pEnd); pBegin = pData; pEnd = pData; while(*pBegin != '\0') { while (*pBegin == ' ') { ++pBegin; ++pEnd; } if(*pEnd == ' ' || *pEnd == '\0') { pEnd--; Reverse(pBegin, pEnd); ++pEnd; pBegin = pEnd; } else { pEnd++; } } return pData; } int main() { char *m_data=strdup("I am a student."); ReverseSentence(m_data); printf("%s",m_data); return 0; }
相关文章推荐
- 反转字符串,单词内部顺序不变
- 翻转句子(单词内部顺序不变)
- String——反转单词顺序VS左旋字符串
- alg: 反转字符串中的单词顺序
- 字符串单词顺序反转
- 字符串反转,单词内容不变
- 输入一行字符串,把字符串翻转[单词顺序不变]
- java算法实现"输入一个英文句子,反转句子中的单词顺序,但单词内字符的顺序不变"
- 面试题42反转单词顺序VS左旋字符串(循环左移字符串)
- 剑指Offer(Java版):反转单词顺序VS左旋转字符串
- 给定一字符串,将每个单词的字符顺序倒置,单词间的顺序不变。例如:输入字符串“I love you”,输出“I evol uoy”。
- LeetCode练习<二> 将字符串中的每个单词的字母颠倒,单词顺序不变
- [置顶] 剑指offer:第42题反转单词顺序VS左旋转字符串
- 反转句子中单词的顺序(单词中字符的顺序保持不变,c语言)
- 字符串左旋转&&反转单词顺序&&Text Reverse&&句子的逆序
- 符号不变 单词内部反转
- 经典面试题-颠倒字符串单词顺序不变
- 字符串倒序单词顺序不变保留空格
- 2014-04-09 单词内部翻转,顺序不变(谷歌面试题)
- 字符串单词顺序反转