一:解密QQ号
queue解法:
#include<queue>
#include<cstdio>
using namespace std;
int main(){
queue<int>q;
int temp;
for(int i=1;i<=9;i++){ //入队9个数据
scanf("%d",&temp);
q.push(temp);
}
while(!q.empty()){
printf("%d",q.front()); //输出队首
q.pop(); //队首出队
q.push(q.front()); //新队首重新入队
q.pop(); //新队首出队
}
return 0;
}
queue容器的常见用法(算法笔记P218)
#include<queue>+using namespace std;
queue<typename>name;
对一个名为q的队列有如下函数:
q.empty() //队列为空则返回true
q.pop() //队首出队
q.push() //入队队尾
q.front() //访问队首
q.back() //访问队尾
q.size() //获得队列内元素个数
二:解密回文
stack解法:
#include<stack>
#include<cstdio>
#include<string>
using namespace std;
char a[100];
int main(){
gets(a); //len、mid、next预处理
int len=strlen(a);
int mid=len/2-1;
int next;
if(len%2==0)
next=mid+1;
else
next=mid+2;
stack<char>s;
for(int i=0;i<=mid;i++){ //把mid前数据压入栈内
s.push(a[i]);
}
for(int i=next;i<=len-1;i++){ //从栈顶依次检验数据并弹出,若出现不同则结束循环
if(s.top()!=a[i])
break;
s.pop();
}
if(s.empty()) //若栈内元素全部弹出则说明为回文
printf("YES");
else
printf("NO");
return 0;
}
stack容器的常见用法(算法笔记P227)
#include<stack>+using namespace std;
stack<typename>name;
对一个名为s的栈有如下函数:
s.empty() //栈为空则返回true
s.pop() //弹出栈顶元素
s.push() //元素入栈
s.top() //访问栈顶元素
s.size() //获得栈内元素个数