qsn 身体:-
给定 2 个字符串 Needle 和 Haystack。给定的 Needle 本质上是扭曲的,可以按任何顺序重新排列和重新排列。您必须检查 Needle 是否是 Haystack 的一部分。即 - 给定的字符串 needle 是否是字符串 haystack 的混洗子字符串。
输入:输入的第一行包含测试用例的数量 T。对于每个测试用例,第一行由针组成,第二行由干草堆组成。
输出:如果给定的字符串 needle 是 haystack 的混洗子字符串,则打印 Yes。否则打印编号。
你的任务:完成函数 isShuffledSubstring(),它将给定的 needle 和 haystack 作为输入并返回一个布尔值。
约束:1 <= haystack.length() <= 1000 1 <= needle.length() <= 1000
例子:
样本输入:
onetwofour hellofourtwooneworld
roseyellow yellow
geekforgeeks ekegorfkeegsgeek
样本输出:
Yes
No
Yes
解释:
测试用例 1:
needleonetwofour可以重新排列为fourtwoonehaystack 的子字符串hellofourtwooneworld。
测试用例 2:
针的长度大于干草堆。因此,needle 不是 haystack 的子串。
测试用例 3:
needlegeekforgeeks可以重新排列为orfkeegsgeekhaystack 的子字符串ekegorfkeegsgeek。
**必需功能 ==:- **
def isShuffledSubstring(needle, haystack):
# Your code goes here
if len(needle)>len(haystack):
return False
Map1={}
Map2={}
for i in needle:
if i in Map1:
Map1[i]+=1
else:
Map1[i]=1
for i in haystack:
if i in Map2:
Map2[i]+=1
else:
Map2[i]=1
for i in Map1:
if i in Map2:
if Map2[i]<Map1[i]:
return False
else:
return False
return True
它通过了测试用例,但没有通过完整的测试用例。对不起,所有的测试用例都不是我的,因为它是编码竞赛的一部分。
谢谢你!