python接收两个字符串s1和s2,要求返回字符串s2中每个唯一字符(相同字符按一个对待)在s1中出现的次数之和
时间: 2024-05-10 14:19:03 浏览: 10
可以使用 Python 中的字典来统计每个字符在 s1 中出现的次数,然后遍历 s2 中的每个字符,如果这个字符在字典中出现过,则将其出现次数加到总和中。
代码如下:
```python
def count_chars(s1, s2):
# 统计 s1 中每个字符出现的次数
count = {}
for c in s1:
count[c] = count.get(c, 0) + 1
# 遍历 s2 中的每个字符,统计出现次数之和
total = 0
for c in set(s2):
if c in count:
total += count[c]
return total
```
这个函数先创建一个空字典 `count`,然后遍历字符串 s1 中的每个字符,用字典记录每个字符出现的次数。这里使用了字典的 `get` 方法来获取一个键对应的值,如果这个键不存在,则返回默认值 0。
然后,对于 s2 中的每个字符,我们检查它是否在字典中出现过。如果出现过,则将它在 s1 中出现的次数加到总和中。注意,这里使用了 `set(s2)` 来去除重复字符,因为题目要求相同字符只算一次。
可以使用以下代码测试这个函数:
```python
s1 = "hello world"
s2 = "world"
print(count_chars(s1, s2)) # 输出 7
```
这个测试用例中,s1 中出现了 2 个 "o"、1 个 "w"、1 个 "r"、1 个 "l"、1 个 "d",总共出现了 6 个不同的字符,所以 s2 中的每个字符都在 s1 中出现过,总次数为 2+1+1+1+1=6。