【字符串处理、枚举T10】肥宅快乐串

本题的主要思路是以 "fattyhappy" 为模板,对字符串进行模板匹配。

我们可以从原字符串的每一个字符开始,统计接下来 10 个数字与 "fattyhappy" 的不同字符数,并根据不同的字符数进行对应的操作。我们记不同字符数为 diff。

1. diff >= 3

该情况下无论如何交换都至少会有一个字符与模板字符串不同。

故当 diff >= 3 时不存在答案。

2. diff == 2

该情况下我们尝试交换不同的两个字符。

如果交换后与模板字符串相同,则可以将这两个位置作为答案进行输出。

3. diff == 1

该情况下我们需要将这个不同的字符与所有其他字符尝试进行交换。

如果交换后与模板字符串相同,则可以将这两个位置作为答案进行输出。

4. diff == 0

该情况下我们已经匹配到了完整的字符串。但是题目要求我们必须进行一次交换。

观察到 "fattyhappy" 中有重复的字符。我们只需要在单词内任选两个相同字符进行交换即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值