2017, X Samara Regional Intercollegiate Programming Contest B.Pursuing the Happiness (string函数)
2024-09-07 19:39:53
题意:给你一个字符串,可以交换两个字符的位置,问操作后能否在字符串中找到子串\("happiness"\),如果不能,输出交换的两个位置.
题解:这题其实用string中的find函数很是方便啊,假如字符串中不含子串,我们判断一下交换\(1\)和\(2\)位置的字符后是否含有子串,如果有就直接交换\(1\)和\(3\),没有当然就是\(1\)和\(2\)啦.在考虑有子串的情况,如果含有\(1\)个子串,就直接交换子串的第一个和第二个位置,如果含有两个子串,就交换第一个子串的第一个位置和第二个子串的第二个位置即可,如果含有三个及以上的子串,就束手无策啦.具体还是看代码吧.
代码:
string s; int main() {
ios::sync_with_stdio(false);cin.tie(0);
cin>>s;
string t="happiness";
int pos1=s.find(t); if(pos1==s.npos){
puts("YES");
swap(s[0],s[1]);
if(s.find(t)==s.npos){
printf("1 2\n");
}
else{
printf("1 3\n");
}
}
else{
int pos2=s.find(t,pos1+8);
if(pos2!=s.npos){
int pos3=s.find(t,pos2+8);
if(pos3!=s.npos){
puts("NO");
}
else{
puts("YES");
printf("%d %d\n",pos1+1,pos2+2);
};
}
else{
puts("YES");
printf("%d %d\n",pos1+1,pos1+2);
};
} return 0;
}
最新文章
- gruntJs篇之connect+watch自动刷新
- 3163: [Heoi2013]Eden的新背包问题
- Linux编程遇到的问题汇集(持续更新中)
- 每天学习一点点...css...
- 显示/隐藏Mac隐藏文件
- Spring Batch 专题
- 【MySql】启动/停止
- php opcodes运行原理
- 1 CHM 中文都是乱码
- $Django redis内存数据库 (知识回顾cmd切换目录)
- Stm32常见英文缩写
- 表达式引擎aviator
- AsyncTask(异步任务)
- Git stash 常用命令
- HDU6043 17多校1 KazaQ's Socks 水题
- 何谓domReady
- JavaScript快速入门-实战(例子)
- [LeetCode] 398. Random Pick Index ☆☆☆
- QuantLib 金融计算——随机过程之 Heston 过程
- Struts2 上传下载