肥宅快乐串

Description

龙龙在研究字符串和字符串处理。龙龙发现有一些字符串让他第一眼看到就会发自内心的感到快乐,他把这些字符串称为“肥宅快乐串"。龙龙进一步研究发现,一个字符串是"肥宅快乐串",当且仅当这个字符串存在至少一个子串是"fattyhappy"。字符串的子串是指这个字符串中截下来的连续的一段。比如"fffffattyhappyyyyy"就有一个"fattyhappy"子串,而"faaaaattyhappy"就没有一个"fattyhappy"子串。现在龙龙看到了好多个字符串,他想对每一个字符串交换恰好一对字符的位置,使得这个字符串变成"肥宅快乐串"。请注意:必须进行一次交换,不允许不交换。龙龙真的很想见到"肥宅快乐串",请你帮帮龙龙吧,告诉他应该交换字符串里哪两个位置的字符。

Input

输入共有 T+1 行,其中 T(1 ≤ T ≤ 1000)表示需要你进行操作的字符串个数;

第一行一个正整数T;

接下来第 2 到第 T+1 行,每行输入一个字符串,表示需要你帮忙变成"肥宅快乐串"的原来的字符串,一共有 T 行。

Output

输出 T 行,表示这 T 个字符串的交换方案。
对于每个字符串,如果有解,输出两个数 i,j,表示交换字符串的第 i 个和第 j 个字符。
否则输出一个数-1,表示没有方案。如果有多种方法使得它变成"肥宅快乐串",输出任意一种即可。

Note

所有数据保证1 ≤ T ≤ 1000, |Si| ≤ 1000,∑|Si| ≤ 10^5, 即单个字符串长度不超过 1000,所有字符串总长度不超过 10 的 5 次方。保证字符串中只有小写字母出现。

代码如下:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{  int T,length,i,j,sum=0,flag,h,h1,h2;  char fattyhappy[10] = {'f','a','t','t','y','h','a','p','p','y'};  char s1,s2,s3;  scanf("%d",&T);  while(T--)  {  char a[1000+10]; memset(a,0,sizeof(a));  scanf("%s", &a); length=strlen(a);  flag=0;  for(i=0;i<length;i++)  {  sum=0;flag=0; //flag作为可否得到肥宅快乐串的标志符   for(j=0;j<10;j++) //对每一个i往后遍历找十个字符与肥宅快乐串对应字符作比较   {  if(a[i+j]!=fattyhappy[j]&&sum==0) //相同即不做处理,继续比较下一个   {  s1=fattyhappy[j]; //遇到的第一个不同的字符存起来   h1=i+j; //记录原来的字符位置   sum++;  }  else if(a[i+j]!=fattyhappy[j]&&sum==1)  {  sum++;  h2=i+j; //记录原来的字符位置   s2=fattyhappy[j];  }  else if(a[i+j]!=fattyhappy[j]&&sum>1)  sum++;  }  if(sum==0) //对a[i]遍历完10个之后得出不同字符的个数,无不同从原本字符串找交换   {  printf("%d %d\n",i+4,i+3); //此时的i即为fattyhappy的第一个字符   flag=1;  break;  }  else if(sum==1) //一个不同,从10个之外的字符里找符合要求的   {  for(h=0;h<length;h++)  {  if(a[h]==s1)  {  printf("%d %d\n",h+1,h1+1); flag=1;  break;  }  if(h==i)   {  h+=9; continue;  }  }  if(flag==1) break;  }  else if(sum==2) //两个不同,如果彼此交换得到肥宅快乐串即可   {  if(a[h1]==s2&&a[h2]==s1)  {  printf("%d %d\n",h1+1,h2+1);  flag=1;  break;  }  }  else continue; //不同字符大于2,怎样更换都无法满足条件 ,继续寻找   }    if(flag==0) printf("-1\n"); //flag=1表示可交换出肥宅快乐串   }    }

(程序设计方法与实践)肥宅快乐串相关推荐

  1. 肥宅快乐串-动态规划

    题目: 对于两个字符串的两个公共子序列 s1 与 s2 ,设 s1 中的字符在第一个字符串中出现的位置(下标)集合为 P11 ,在第二个字符串中出现的位置集合为 P12 :设 s2 中的字符在第一个字 ...

  2. 肥宅快乐还是不快乐,拓展欧几里得,exgcd???bfs

    扩展欧几里德算法 先介绍什么叫做欧几里德算法有两个数 a b,现在,我们要求 a b 的最大公约数,怎么求?枚举他们的因子?不现实,当 a b 很大的时候,枚举显得那么的naïve ,那怎么做?欧几里 ...

  3. 喜迎儿童节,肥宅快乐码。

    发现编辑器不能插入视频音频资源,完整版请查看原文链接:http://dopro.io/morse.html 上周是六月一日儿童节.很多小朋友大朋友们都拥有了自己的"肥宅快乐套餐", ...

  4. 平分肥宅快乐水(C++)

    #include<bits/stdc++.h> using namespace std; int main(){double t;int n;cin>>t>>n;p ...

  5. 【愚公系列】2021年11月 攻防世界-进阶题-MISC-055(肥宅快乐题)

    文章目录 一.肥宅快乐题 二.答题步骤 1.视频播放器 2.base64 总结 一.肥宅快乐题 题目链接:https://adworld.xctf.org.cn/task/task_list?type ...

  6. 平分肥宅快乐水之辗转相除法

    链接:登录-专业IT笔试面试备考平台_牛客网 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 65536K,其他语言131072K 64bit IO Format: %l ...

  7. 爱喝「肥宅快乐水」的班长

    题目描述 现在已经是暑假了!这周日,码队的弟弟所在的班级--上海某中学高二 33 班的同学们准备在码队弟弟的带领下(码队的弟弟是这个班的班长),举办一场派对. 码队的弟弟让两名同学打开手机 「云闪付」 ...

  8. 攻防世界 Misc高手进阶区 3分题 肥宅快乐题

    前言 继续ctf的旅程 攻防世界Misc高手进阶区的3分题 本篇是肥宅快乐题的writeup 发现攻防世界的题目分数是动态的 就仅以做题时的分数为准了 解题过程 下下来一个swf文件 真就打游戏呗 不 ...

  9. (程序设计方法与实践)打包礼物

    打包礼物 Description 再过一段时间就是龙龙心心念念的她的生日,龙龙准备了 k 个礼物送给她,并且决定用顺丰快递寄过去. 但是龙龙发现,因为 k 太大了,所以要发很多个快递,这样就要很多的快 ...

最新文章

  1. 安装TensorRT,然后导入uff库包的时候报错:ImportError: ERROR: Failed to import module(cannot import name ‘GraphDef`)
  2. 请大家访问另一个我的博客!
  3. 史蒂夫·乔布斯很懂团队建设
  4. UIScrollView的delegate方法妙用之让UICollectionView滑动到某个你想要的位置
  5. LiveVideoStack Meet | 苏州站全记录
  6. JavaScript 元编程
  7. 【牛客 - 317F】小a的子序列(线性dp,tricks)
  8. AI算法连载04:数学基础之蒙特卡洛方法与MCMC采样
  9. transporter上传卡正在交付_Xcode11,Transporter上传卡在——正在验证 APP - 正在通过App Store进行认证...
  10. Bitmap存储入门
  11. jquery,Ajax判断验证码是否正确,不正确阻止提交
  12. 推荐top10的免费下载破解软件的网站
  13. 2018.9.13 贷款月供计算器
  14. 方维团购V3.07版本短信插件开发
  15. 给IT新人的15点建议:苦逼程序员的辛酸反省与总结
  16. [置顶]CHENEY-YANG'S BLOG(cheney-yang)
  17. PNG图片转CAD图纸有什么快速又方便的方法呢?
  18. Tampermonkey中文文档(部分)
  19. java解决拼音多音字问题
  20. Linux的Vim文本编辑器

热门文章

  1. error LNK2005: _main already defined in test.obj
  2. Linux仿真不checkquota命令,请教quotacheck命令找不到,怎么解决?
  3. Linux 磁盘管理 : quota 命令详解
  4. JavaScript权威指南(原书第7版) 犀牛书
  5. Scala学习之猴子选大王,超级素数
  6. 男友游戏android,我有一个秘密男友
  7. bzoj5191 [Usaco2018 Feb]Slingshot(离线+树状数组)
  8. 还是要习惯在linux环境下作Java开发
  9. 花窗图案c语言设计,【花窗】花窗图案,花窗隔断,玻璃,效果图
  10. Oracle 中取周别 IW和WW 有何差别