问题 A: 我有一个vector
题目描述 作为一个程序媛/猿,或许大家都有头被按在键盘上的经历。 边总突然想知道自己的头在键盘上按出来的字母有没有规律,于是他打算统计出被按出来的乱码中每个字母出现的位置。 给出字符串和要查询的字母,问要查询的字母出现过的位置。 输入 多组测试样例 每行为一个不知道有多长的字符串 s ,然后是一个字符表示 c 要查询的字母,中间用空格隔开。 保证字符串中只有小写字母。 输出 输出要查询的字母在字符串中出现过的位置,字符串下标从一开始。 如果要查询的字母不在字符串中,输出 NO 样例输入 asdfghjkls s abcdef x 样例输出 2 10 NO
#include
#include
#include
#include
using namespace std;
int main() {
string s;
char c;
while(cin>>s>>c){
int flag=1;
string::iterator it; //字符串的迭代器
vector v; //定义一个vectorr
for(it=s.begin();it!=s.end();++it){
if(*it==c)
v.push_back(flag) ;
flag++; //位置
}
if(!v.empty()){ //如果不为空输出vector里的存储
vector::iterator l;
for(l=v.begin();l!=v.end();l++)
cout
cin>>n>>m;
if(n==0&&m==0) break;
s.clear();
for(int i=1;i1){ //只剩一个时退出循环
for(int i=1;i
int n;
int x;
while(cin>>n){
int flag=0;
queue q1; //定义两个队列
queue q2;
for(int i=0;i //输入
cin>>x;
q2.push(x);
}
while(!q1.empty()){ //q1为空时退出循环
if(q1.front()==q2.front()){ //如果q1的头等于q2的头则两个都消
q1.pop();
q2.pop();
flag+=2; //得分+2
}else{ //如果q1的头不等于q2的头则消除q1的头
q1.pop();
}
}
cout
cin>>x;
c.push_back(x); //输入初始排队码
}
while(t--){ //t行操作
string s;
cin>>s;
if(s[0]=='l'){ //如果是离开,
int i;
cin>>i;//第几个人离开
vector::iterator it=c.begin(); //队头
c.erase(it+i-1); //删除 vector有erase,list没有
}else{
int i,j;
cin>>i>>j;
vector::iterator it=c.begin(); //队头
c.insert(it+i-1,j); //插入j w位置为it+i-1
vector ::iterator it2;
for(it2=c.begin();it2!=c.end();it2++){ //每次插队后,输出所有
cout
list l;
list s;
while(n--){
cin>>x;
l.push_back(x); //输入n个数
}
l.sort(); //排序
list::iterator it; //定义迭代器
for(it=l.begin();it!=l.end();it++){
if(s.empty()) //l的第一个元素入s
s.push_back(*it);
else{
if(*it==s.back())
continue; //如果l要入的等于s的末尾,则不入s
else
s.push_back(*it); 否则入s
}
}
/*或者可以直接使用list的unique函数(删除所有和前一个元素相同的元素)
l.unique();
最后再遍历l
*/
list::iterator i;
for(i=s.begin();i!=s.end();i++) //遍历S
cout
list l;
list s;
while(n--){
cin>>x;
l.push_back(x);
}
l.sort();
list::iterator it;
for(it=l.begin();it!=l.end();it++){
if(s.empty())
s.push_back(*it);
else{
if(*it==s.back())
continue;
else
s.push_back(*it);
}
}
cout
cin>>name>>color;
mp[color].insert(name); //关键字为color 插入到set里
}
map ::iterator m; //定义一个map的迭代器
for(m=mp.begin();m!=mp.end();m++){
cout
string str;
int vip;
}temp;
bool operator
string op,str;
int vip;
priority_queue q; //定义一个结构体node的优先队列 优先级判定重载运算符
while(cin>>op){ //输入指令
if(op=="PUSH"){ //为push
cin>>str>>vip;
temp.str=str;
temp.vip=vip;
q.push(temp); //入队列
}
else{ //为pop
if(q.empty()){ //如果为空则输出空
cout |