面试题42:旋转字符串
2017-04-10 19:43
295 查看
#include<iostream> #include<string.h> using namespace std; void reverse(char *begin, char *end){ if(begin == NULL || end == NULL){ return; } while(begin < end){ char tmp = *begin; *begin = *end; *end = tmp; ++begin; --end; } } void reverse_sentence(char *begin){ if(begin == NULL){ return; } //找到结尾 char* end = begin; while(*end != '\0'){ ++end; } --end; //旋转整个字符串 reverse(begin, end); //查找空格并旋转单个单词 end = begin; while(*begin != '\0'){ if(*begin == ' '){ ++begin; end = begin; }else if (*end == ' ' || *end == '\0'){ reverse(begin, --end); begin = ++end; }else{ ++end; } } } int main(){ char *s = new char[100]; cin.getline(s, 100); reverse_sentence(s); cout << s << endl; delete []s; return 0; }
相关文章推荐
- (剑指Offer)面试题42:左旋转字符串
- 【剑指offer】6.3知识迁移能力——面试题42:翻转单词顺序VS左旋转字符串
- 【剑指offer】面试题42-翻转单词顺序VS左旋转字符串
- 剑指offer 面试题42 翻转单词顺序 | 左旋转字符串
- 剑指offer——面试题42:(二)字符串的坐旋转操作
- 剑指Offer面试题42:翻转单词顺序;左旋转字符串 Java实现
- 【剑指offer】面试题42:单词翻转顺序&左右旋转字符串
- 面试题42:翻转单词的顺序,左旋转字符串
- 剑指offer 面试题42—翻转单词顺序VS左旋转字符串
- 【剑指offer】面试题42:左旋转字符串
- 面试题42-2:左旋转字符串
- 面试题42 左旋转字符串
- 面试题42-题目2:字符串左旋转
- 【剑指Offer学习】【面试题42:翻转单词顺序vs左旋转字符串】
- 面试题42-2:左旋转字符串
- 剑指offer之面试题42翻转单词顺序VS左旋转字符串
- 面试题42:左旋转字符串
- 剑指Offer系列-面试题42:翻转单词顺序和左旋转字符串
- 剑指offer_面试题42——左旋转字符串
- 剑指offer-面试题42-翻转单词顺序VS左旋转字符串