• 题意:给你一个字符串,可以交换两个字符的位置,问操作后能否在字符串中找到子串\("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;
    }

最新文章

  1. gruntJs篇之connect+watch自动刷新
  2. 3163: [Heoi2013]Eden的新背包问题
  3. Linux编程遇到的问题汇集(持续更新中)
  4. 每天学习一点点...css...
  5. 显示/隐藏Mac隐藏文件
  6. Spring Batch 专题
  7. 【MySql】启动/停止
  8. php opcodes运行原理
  9. 1 CHM 中文都是乱码
  10. $Django redis内存数据库 (知识回顾cmd切换目录)
  11. Stm32常见英文缩写
  12. 表达式引擎aviator
  13. AsyncTask(异步任务)
  14. Git stash 常用命令
  15. HDU6043 17多校1 KazaQ's Socks 水题
  16. 何谓domReady
  17. JavaScript快速入门-实战(例子)
  18. [LeetCode] 398. Random Pick Index ☆☆☆
  19. QuantLib 金融计算——随机过程之 Heston 过程
  20. Struts2 上传下载

热门文章

  1. requests +httprunne r
  2. WPF NET5 Prism8.0的升级指南
  3. windows下部署Grafana +prometheus平台监控
  4. CTS相关的几个表
  5. 【转】自定义ALV控件的工具条按钮
  6. Java程序入门
  7. 欢迎来到 ZooKeeper 动物世界
  8. 前端面试之ES6中的继承!
  9. 关于jmeter客户端实现中HttpClient4与Java的区别
  10. memory barrier 内存屏障 编译器导致的乱序