24.变形词
对于两个字符串A和B,如果A和B中出现的字符种类相同且每种字符出现的次数相同,则A和B互为变形词,请设计一个高效算法,检查两给定串是否互为变形词。
给定两个字符串A和B,请返回一个bool值,代表他们是否互为变形词。
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 256M,其他语言512M
输入描述:
两行,每行各一个字符串s,s长度小于1000
输出描述:
bool 值
示例1
输入例子:
bcbc
cbcb
输出例子:
1
讨论:
1. 改变了部分"初始给定代码" (调整了输入读取方式,注释掉了看不懂的代码),不然真的写不出来。感觉"初始给定代码"中存在着一定误导。
2. 很久没有见过在考试中给try-except当结构,leetcode上做题一般都是给子函数def的结构。完成功能就好。研究了很久如何在这个结构中完成功能,最后还是选择调取def。
3. 吐槽:牛客的报错太糟糕了!!!很多次本地编译器跑成功,线上OJ无输出还没有任何提示!真的很浪费时间!求提升!!!
代码:
import sys
def myfunction(line1, line2):
if len(line1) != len(line2):
return 0
for i in line1:
num = line1.count(i)
if line2.find(i) >= 0:
if line2.count(i) != num:
return 0
else:
return 0
return 1
try:
while True:
line1 = sys.stdin.readline().strip()
line2 = sys.stdin.readline().strip()
a = myfunction(line1, line2)
print(a)
# print(int(lines[0])+int(lines[1]))
break
except:
print(-1)