今天做了两道比较简单的OJ题,但是还是想写一下,因为其中用到一些之前没有的小技巧。
回文数
思路:
1.选择string型,方便长度的查找、首尾的比较。
2.进行遍历比较,当出现不相等就记录否。
#include<iostream>
#include<string.h>
using namespace std;
int main(){
string num;
while(cin>>num){
int length=num.size();
bool flag=true;
for(int i=0,j=length-1;i<length/2;i++,j--){
if(num[i]!=num[j])flag=false;
}
if(flag)cout<<"yes"<<endl;
else cout<<"no"<<endl;
}
return 0;
}
循环移动
思路:
1.选择deque容器方便队首尾的操作。
2.分析移动方向
#include<iostream>
#include<deque>
using namespace std;
int main(){
deque<int> p;
int n,k,num;
cin>>n>>k;
for(int i=0;i<n;i++){
cin>>num;
p.push_back(num);
}//赋值
for(int i=0;i<k;i++){
p.push_back(p.front());
p.pop_front();
}
for(deque<int>::iterator it=p.begin();it!=p.end();it++){
cout<<*it<<endl;
}
return 0;
}