华为OD真题:输出字符串1在字符串2中的位置
字符串1在字符串2中是否为子串,是的话输出第一个子串的在字符串2中的位置,不是的话输出-1.是子串的标准是只要字符串1的任意排列组合在字符串2中出现就可以
题意大概是这样,有人见过这个题对应的牛客真题吗?麻烦提供下
考试时案例通过率只有66.67%,思路如下:
a = len(str1)
for循环a次,然后分别获取到str1中每个字符在str2中的位置,再把获取到的位置进行排序(这样就可以屏蔽掉字符串排列组合带来的复杂性),排序后如果前后两个数之差为1或者-1,则说明str1在str2中存在,并且输出最小位置对应的字符在str2中出现的位置。该思路得到的案例通过率只有66.67%
这里有一个漏洞:可能str1中的某个字符在str2中出现了多次,这样同一个字符可能会获取到多个索引,再用上面的方法去处理就有问题了,有大神有更好的思路吗探讨下
#华为OD机考##华为od#