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

该博客探讨了如何通过交换字符串中的一对字符,将字符串转换为包含子串"fattyhappy"的"肥宅快乐串"。题目描述了一个字符串处理问题,要求在给定的一组字符串中,找到每个字符串需要交换的字符位置,以形成至少包含子串"fattyhappy"的字符串。若无法通过一次交换达成目标,则输出-1。问题约束包括字符串数量、长度及总长度的限制。
摘要由CSDN通过智能技术生成

肥宅快乐串

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'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值