用python写代码,题目描述 大战即将来临,杰洛特需要为自己声张声势,但是喊得太假有会被人识破 因此杰洛特决定连着喊出两句话,两句话中所有的字母数量全部相等则不会被识破 请指出杰洛特所喊的话是否会被识破 输入 一个t表示几组数据 接下来t组,每组第一行一句话,第二行一句话 每句话长度小于100000 输出 如果杰洛特没有被识破则输出"Yes" 如果被识破了则喊出"No"
时间: 2024-03-26 08:42:14 浏览: 137
好的,下面是代码实现:
```python
def check(s1, s2):
count1 = [0] * 26
count2 = [0] * 26
for c in s1:
count1[ord(c) - ord('a')] += 1
for c in s2:
count2[ord(c) - ord('a')] += 1
return count1 == count2
t = int(input())
for i in range(t):
s1 = input().strip()
s2 = input().strip()
if len(s1) != len(s2):
print("No")
continue
if check(s1, s2):
print("Yes")
else:
print("No")
```
首先,我们需要一个函数来判断两个字符串中的字符数量是否相等。为了统计每个字符出现的次数,我们可以使用一个长度为 26 的数组,数组下标表示字符的 ASCII 码值减去字符 'a' 的 ASCII 码值。
接下来,我们读取输入的 t 值,即数据组数。对于每组数据,我们读取两个字符串 s1 和 s2,判断它们的长度是否相等。如果长度不相等,那么杰洛特一定会被识破,直接输出 "No" 即可。
如果长度相等,那么我们就需要调用 check 函数来判断两个字符串中的字符数量是否相等。如果相等,那么杰洛特就不会被识破,输出 "Yes"。否则,输出 "No"。
希望能够帮助到你!
阅读全文