12.14考试总结
来源:互联网 发布:陈大新 矩阵理论 编辑:程序博客网 时间:2024/05/19 22:57
开篇照样吐槽
(听说要考递归?
(字符串?
(操作?
就酱,我怀着期(ri)待(gou)的心情打开了题面
第一题:题目描述:
分别用大写英文字母A,B,c,…Z表示这26个路口,并按如下的规则派出这些机器人到交通路口协助指挥交通:u
1、每次派出两名机器人。
2、当两名机器人的名字中存在一个相同的字母时,这两名机器人便到对应的交通路口指挥(ZhiHui)交通;有多个字母相同时,两名机器人需要按字母的字典顺序到这些路口巡逻。(XLuo)
3、当两名机器人的名字中不存在相同的字母时,交警部门的派出指令无效(WuXiao)
1、当不能派出机器人时,在第一行输出“WuXiao”.
2、当两名机器人在路口上指挥交通时,在第一行输出“ZhiHui”,在第二行输出路口编号。
当两名机器人在路口上巡逻时,在第一行输出“XunLuo”,第二行输出巡逻的路口数,好简单啊!本蒟蒻已经不是当年那个蒟蒻啦!哈哈哈哈太简单了!坐等打脸!
解题思路:暴力二重,开个标记数组,记录是否重复,三种情况按序输出就行啦!
代码:#include<bits/stdc++.h>
using namespace std;
int main()
{
string a,b,t;
char tb;
int k=0,jl=0,pd[26]={0};
cin>>a>>b;
for(int i=0;i<a.length();i++)
for(int j=0;j<b.length();j++) if(a[i]==b[j]&&pd[a[i]-'A']==0) {k++; pd[a[i]-'A']=1;}
// for(int i=0;i<=25;i++) if(pd[i]==1) cout<<i<<' ';
if(k==0) {cout<<"WuXiao"<<endl; return 0;}
else if(k==1)
{
cout<<"ZhiHui"<<endl;
for(int i=0;i<a.length();i++)
for(int j=0;j<b.length();j++) if(a[i]==b[j])
{
cout<<a[i]<<endl;
return 0;
}
}
else
{
cout<<"XLuo"<<endl;
for(int i=0;i<=25;i++) if(pd[i]==1&&jl+1!=k) {tb='A'+i; cout<<tb<<'-'; jl++;}
else if(pd[i]==1) {tb='A'+i; cout<<tb<<endl;}
}
//for(int i=0;i<a.length();i++)
// for(int j=0;j<b.length();j++) if(a[i]==b[j]) {cout<<a[i]<<endl; return 0;}
//if(jl+1!=k) cout<<a[i]<<'-';
//else cout<<a[i]<<endl;
//jl++;
return 0;
}
(忽略注释打表打表)
这么腻害的程序肿么可能错
信心满满(蜜汁自信)
什么鬼?
20分。。
一看输出。。。这是什么东西?
一行80分?80分?
代码:#include<bits/stdc++.h>
using namespace std;
int main()
{
string a,b,t;
char tb;
int k=0,jl=0,pd[26]={0};
cin>>a>>b;
for(int i=0;i<a.length();i++)
for(int j=0;j<b.length();j++) if(a[i]==b[j]&&pd[a[i]-'A']==0) {k++; pd[a[i]-'A']=1;}
// for(int i=0;i<=25;i++) if(pd[i]==1) cout<<i<<' ';
if(k==0) {cout<<"WuXiao"<<endl; return 0;}
else if(k==1)
{
cout<<"ZhiHui"<<endl;
for(int i=0;i<a.length();i++)
for(int j=0;j<b.length();j++) if(a[i]==b[j])
{
cout<<a[i]<<endl;
return 0;
}
}
else
{
cout<<"XLuo"<<endl;
cout<<k<<endl;
for(int i=0;i<=25;i++) if(pd[i]==1&&jl+1!=k) {tb='A'+i; cout<<tb<<'-'; jl++;}
else if(pd[i]==1) {tb='A'+i; cout<<tb<<endl;}
}
//for(int i=0;i<a.length();i++)
// for(int j=0;j<b.length();j++) if(a[i]==b[j]) {cout<<a[i]<<endl; return 0;}
//if(jl+1!=k) cout<<a[i]<<'-';
//else cout<<a[i]<<endl;
//jl++;
return 0;
}
(浪费1小时凉了凉了)
第二题先不写!
第三题:题目描述:
具体问题是:给定长度为N(1 <= N <=50,000)的只包含左右(小)括号的字符串。能否找出相邻的两个左括号,和两个相邻的右括号,并且左括号的位置比右括号的位置靠左。
是时候展示我666的代码技术了
解题思路:离散化,存2个数组,存双括号下标,暴力二重,如果a在b左边就必然有一对双括号匹配
贴代码:#include<bits/stdc++.h>
using namespace std;
int a[26000]={},b[26000]={},xb=1,xb1=1;
long long s=0;
string c;
int main()
{
cin>>c;
for(int i=0;i<=c.size();i++)
{
if(c[i]=='('&&'('==c[i+1]) {a[xb]=i; xb++;}
if(c[i]==')'&&')'==c[i+1]) {b[xb1]=i; xb1++;}
}
//cout<<a[1]<<' '<<a[2]<<endl<<b[1]<<' '<<b[2]<<endl;
xb--; xb1--;
for(int i=1;i<=xb;i++)
for(int j=1;j<=xb1;j++)
{
if(b[j]>a[i]) {//cout<<b[j]<<" "<<a[i]<<endl;
s++;}
}
cout<<s<<endl;
return 0;
}
第三题:题目描述:
2027年,从清华毕业的久知找了一份为一些文件的某些部分加密的工作,加密的部分是一串小写英文字母,加密的规则是这样的:要是连续出现相同的字母,则把他们替换成这个字母的大写形式,后面紧跟相同字母的个数,并把它之前跟之后的两端字符串调换,例如出现bcmatchingaef,则字符串变成:efA6bc。然后重新扫描字符串,直到没有出现相同小写字母为止。
这题不贴代码辣(我才不会告诉你们我不会写)
老师的思路:
我的思路:
- 12.14考试总结
- 考试总结
- 考试总结
- 考试总结
- 考试总结
- 考试总结
- 考试总结
- 考试总结
- 考试总结
- 考试总结
- 考试总结
- 考试总结
- 考试总结
- 考试总结
- 考试总结
- 考试总结
- 考试总结
- 考试总结
- 关于在使用babylon导入外部模型的时候要注意的事项
- 71. Simplify Path
- 雷军的本命年:轮回中的挫败、幸运和逆袭
- 《深入理解java虚拟机》-第3章-垃圾收集器与内存分配策略
- 微信小程序下拉加载更多
- 12.14考试总结
- 100经典算法之(三)---求水仙花数
- Coding在linux下的使用
- oracle 实现插入自增列
- idea快捷键
- HTTP状态码
- 初探 ES6 Promise
- 害人之深
- 如何使用阿里云搭建个人网站