IT公司100题-10-翻转句子中单词的顺序
2014-08-08 14:03
495 查看
问题描述:
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。
句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。
例如输入“Hello world!”,则输出“world! Hello”。
分析:
先翻转各个单词,然后整体翻转即可。
参考代码:
自己的代码:
转载自源代码
本文链接地址: http://w.worthsee.com/index.php/10-%e7%bf%bb%e8%bd%ac%e5%8f%a5%e5%ad%90%e4%b8%ad%e5%8d%95%e8%af%8d%e7%9a%84%
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。
句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。
例如输入“Hello world!”,则输出“world! Hello”。
分析:
先翻转各个单词,然后整体翻转即可。
参考代码:
// 10.cc #include <iostream> #include <cstring> #include <string> using namespace std; void reverse(char* p_start, char* p_end) { char t; while(p_start < p_end) { t = *p_start; *p_start = *p_end; *p_end = t; p_start++; p_end--; } } char* reverse_str(char* str) { if (NULL == str) return NULL; char* p_start = str; char* p_end = str; // 翻转每个单词 while(*p_start != '\0') { if(*p_start == ' ') { p_start++; p_end++; } else if (*p_end == ' ' || *p_end == '\0') { reverse(p_start, --p_end); p_start = ++p_end; } else { p_end++; } } p_end = --p_start; p_start = str; // 整体翻转 reverse(p_start, p_end); return str; } int main() { cout << "input a string:" << endl; string s; getline(cin, s); char *p = new char[s.size() + 1]; strcpy(p, s.c_str()); reverse_str(p); cout << p << endl; delete []p; return 0; }
自己的代码:
char* reverse_str(const char* s1) { assert(s1); stack<char> stack1; const char* head = s1, *rear = s1; while (*head != '\0') { while(*head != ' ' && *head != '\0') head++; const char* p; for(p=head-1;p>=rear;p--) stack1.push(*p); if(*head == ' ') stack1.push(' '); if(*head != '\0') rear = ++head; } char * return_v = new char[strlen(s1)+1]; int i=0; while(!stack1.empty()) { return_v[i++] = stack1.top(); stack1.pop(); } return_v[i]='\0'; return return_v; }
转载自源代码
本文链接地址: http://w.worthsee.com/index.php/10-%e7%bf%bb%e8%bd%ac%e5%8f%a5%e5%ad%90%e4%b8%ad%e5%8d%95%e8%af%8d%e7%9a%84%
相关文章推荐
- IT公司100题-10-翻转句子中单词的顺序
- 微软面试100之10 翻转句子中单词的顺序
- 程序员面试题精选100题(07)-翻转句子中单词的顺序
- 程序员面试题精选100题(07)-翻转句子中单词的顺序
- 算法习题10:翻转句子中单词的顺序
- 面试100题:10.翻转句子中单词的顺序
- 翻转句子中单词的顺序(10)
- 程序员面试题精选100题(07)-翻转句子中单词的顺序[算法]
- 【100题】翻转句子中单词的顺序
- 程序员面试题100题第07题——翻转句子中单词的顺序
- 10、翻转句子中单词的顺序
- 程序员面试题精选100题(07)-翻转句子中单词的顺序
- 程序员面试题精选100题(07)-翻转句子中单词的顺序
- 10 翻转句子中单词的顺序。
- NO_10 翻转句子中单词的顺序。
- 程序员面试题精选100题(07)-翻转句子中单词的顺序[算法]
- 程序员面试题精选100题(07)-翻转句子中单词的顺序
- 程序员面试题精选100题(07)-翻转句子中单词的顺序
- 程序员面试题精选100题(07)-翻转句子中单词的顺序[算法]
- 翻转句子中单词的顺序 【微软面试100题 第十题】