【剑指offer】6.3知识迁移能力——面试题42:翻转单词顺序VS左旋转字符串
2016-01-15 17:14
781 查看
左旋转字符串
//题目描述 //汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它! class Solution { public: string LeftRotateString(string str, int n) { if(n==0)return str; int l=str.size(); if(l==0)return str; n=(n%l+l)%l; return str.substr(n,l-n)+str.substr(0,n); } };翻转单词顺序
//题目描述 //牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么? #include<iostream> #include<string> using namespace std; class Solution { public: string ReverseSentence(string str) { int n=str.size(); if(n==0)return str; bool flag=false; string s=""; string tmp=""; for(int i=0;i<n;i++){ if(str[i]==' '){ if(flag)s=tmp+s; flag=false; tmp=""; s=str[i]+s; }else{ tmp+=str[i]; flag=true; } } s=tmp+s; return s; } }; int main(){ string s="student. a am I"; Solution test=Solution(); cout<<test.ReverseSentence(s)<<endl; //system("pause"); return 0; }
相关文章推荐
- 【剑指offer】6.3知识迁移能力——面试题41:和为s的两个数字VS和为s的连续正数序列
- 【剑指offer】6.3知识迁移能力——面试题40:数组中只出现一次的数字
- 【剑指offer】6.3知识迁移能力——面试题39:二叉树的深度
- 【剑指offer】6.3知识迁移能力——面试题38:数字在排序数组中出现的次数
- [递归和循环]面试题7
- [递归和循环]面试题6
- [递归和循环]面试题5
- 【剑指offer】5.3时间效率与空间效率的平衡——面试题37:两个链表的第一个公共结点
- 【剑指offer】5.3时间效率与空间效率的平衡——面试题36:数组中的逆序对
- 【剑指offer】5.3时间效率与空间效率的平衡——面试题35:第一个只出现一次的字符
- 【剑指offer】5.3时间效率与空间效率的平衡——面试题34:丑数
- 【剑指offer】5.2时间效率——面试题33:把数组排成最小的数
- [查找]面试题4
- [栈和对列]面试题3
- 职业生涯管理系统 servlet+javabean+mysql(三)登陆的实现
- java特种兵读书笔记(3-6)——java程序员的OS之JAVA常用工具
- 面试题——常见5种运行时异常
- 职业生涯管理系统 servlet+javabean+mysql(二)项目的启动
- 测试一台电脑的存储是大端模式还是小端模式
- 黑马程序员——方法总结之正则