习题解析之:字母查找2.0
【问题描述】
定义一个函数来判断单词m是否可以由字符串n中出现的字母来组成。
本题保证字符串中出现的字母均为小写字母,n中的字母只能使用一次。
在两行中分别输入两个字符串m,n
如果输入的m包含有除字母外的其他字符,输出ERROR结束程序,否则继续输入字符串n。
如果m,n 满足条件,则输出FOUND ,否则输出NOT FOUND
示例 1
输入:
word
world
输出:
FOUND
示例 2
输入:
1a3e
输出:
ERROR
示例 3
输入:
at
bcda
输出:
NOT FOUND
示例 4
输入:
hello
heol
输出:
NOT FOUND
【编程思路】
用字符串函数 isalpha() 检查字符串是否仅包含字母。
例如, print('abcde'.isalpha()) 的输出结果为 True;
print('ab12'.isalpha()) 的输出结果为 False。
用字符串函数 count() 统计子串在字符串中出现的次数。
例如,print('ababcabcde'.count('b')) 的输出结果为 3,表示字符 ‘b' 在字符串 ’ababcabcde‘ 出现了 3 次;
print('ababcabcde'.count('1')) 的输出结果为 0,表示字符 ‘1' 在字符串 ’ababcabcde‘ 没有出现。
要判断单词 m 是否可以由字符串 n 中出现的字母来组成,且 n 中的字母只能使用一次。则要求单词 m 中出现的字母 c ,在字符串 n 中的出现次数一定不能小于其在 m 中出现的次数。否则,字符串 n 中对应的字母不够用。例如,示例 4 中,字母 'l' 在单词 m 中出现了 2 次,但在字符串 n 中只出现 1 次,因此输出 NOT FOUND。
为此,可以用循环 for c in m: 来遍历单词 m 中的每个字母,若字母 c 在字符串 n 中出现的次数(n.count(c))小于其在单词 m 中出现的次数(m.count(c)),则返回 False;若单词 m 中的每个字母在字符串 n 中出现的次数都不小于其在单词 m 中出现的次数,则返回 True。
按上面的思路,编写源程序如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/965449.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!