鹦鹉学舌
描述
小明养了一直鹦鹉,平时喜欢训练鹦鹉说话,一开始从简单的单词开始,每个单词小明都会教很多遍,所以鹦鹉也会重复很多遍,由于鹦鹉还小,没有数字的概念,会不停的重复,一天小明想知道自己的鹦鹉是否一直在重复的说自己教它的单词,于是把鹦鹉说的单词录了下来,并给出小明教的单词,由于鹦鹉一直在重复,所以句子可能会很长,小明请你帮助他判断一下,如果一直在重复一个单词输出YES,否则输出NO
day13-01.zip
输入
第一行一个整数T(T<=100),表示数据组数
其后T行,每行两个字符串,用空格隔开,第一个字符串a表示鹦鹉说的句子,第二个字符串b表示小明教的单词
输出
T行,根据题目要求输出YES或NO
输入样例 1
1
输出样例 1
YES
输入样例
输出样例 2
NO
提示
a的长度小于105,b的长度小于
#include <iostream>
#include <string>
using namespace std;
string method(string sentence, string word) {
int len = sentence.length();
int wordLen = word.length();
if (len < wordLen) {
return "NO";
}
for (int i = 0; i <= len - wordLen; i++) {
if (sentence.substr(i, wordLen) == word) {
return "YES";
}
}
return "NO";
}
int main() {
int T;
cin >> T;
for (int i = 0; i < T; i++) {
string sentence, word;
cin >> sentence >> word;
cout << method(sentence, word) << endl;
}
return 0;
}
【以下回答由 GPT 生成】
解决方案:
首先读取输入的数据组数 T,然后对于每一组数据,读取鹦鹉的句子 a 和小明教的单词 b,判断鹦鹉说的句子是否是一个单词的重复。如果是,则输出YES,否则输出NO。
具体步骤:
下面是具体的代码实现(使用Python):
T = int(input()) # 读取数据组数 T
for _ in range(T):
a, b = input().split() # 读取鹦鹉的句子和小明教的单词
words = a.split() # 拆分句子成单词列表
if words[0] == b: # 判断第一个单词是否与小明教的单词相等
unique_words = list(set(words)) # 去重后的单词列表
if len(unique_words) == 1: # 判断去重后的单词列表长度是否为1
print("YES")
else:
print("NO")
else:
print("NO")
通过以上代码,可以解决该问题。如果输入的数据符合要求,代码会输出相应的结果。如果输入的数据不符合要求,比如数据组数 T 超过100,或者单词长度超过105,则会导致程序运行出错。
【相关推荐】