输入字符串A、字符串B,求在字符串A、字符串B中相同的字符个数。
时间: 2024-04-19 09:17:27 浏览: 16
可以使用一个哈希表来解决这个问题。首先遍历字符串A,将其中的每个字符及其出现的次数存储到哈希表中。然后遍历字符串B,对于其中的每个字符,如果该字符在哈希表中出现过,则将相同字符的个数加1,同时将哈希表中该字符的出现次数减1。最后返回相同字符的个数即可。
以下是代码实现:
```python
def count_same_chars(str_a, str_b):
char_count = {} # 哈希表,用于记录每个字符出现的次数
same_count = 0 # 相同字符的个数
# 遍历字符串A,统计每个字符出现的次数
for char in str_a:
if char in char_count:
char_count[char] += 1
else:
char_count[char] = 1
# 遍历字符串B,统计其中在字符串A中出现过的字符个数
for char in str_b:
if char in char_count and char_count[char] > 0:
same_count += 1
char_count[char] -= 1
return same_count
```
示例:
输入:str_a = "hello", str_b = "world"
输出:2
说明:字符串A和字符串B中共有两个相同的字符,即字符'l'和字符'o'。
相关问题
输入字符串A、字符串B,求在字符串A、字符串B中相同的字符个数
可以使用哈希表来解决这个问题。
首先,我们可以遍历字符串A,将每个字符和它出现的次数存储在一个哈希表中。然后,遍历字符串B,如果当前字符在哈希表中已经存在,则将哈希表中对应的次数减1,并将相同字符的个数加1。
最后,相同字符的个数就是哈希表中所有值减去字符串A中字符出现的次数之和。
以下是示例代码:
```python
def find_common_chars(str_a, str_b):
char_count = {}
for c in str_a:
char_count[c] = char_count.get(c, 0) + 1
common_count = 0
for c in str_b:
if c in char_count and char_count[c] > 0:
char_count[c] -= 1
common_count += 1
return common_count
```
在这个代码中,我们使用了字典来实现哈希表。`char_count`字典用来存储字符串A中每个字符的出现次数,而`common_count`变量则用来统计相同字符的个数。在遍历字符串B时,如果当前字符在`char_count`中已经存在,并且对应的出现次数大于0,则将其出现次数减1,并将相同字符的个数加1。最后,返回相同字符的个数即可。
输入字符串A、字符串B,求在字符串A、字符串B中相同的字符个数 python
可以使用Python中的集合(set)来实现这个功能。首先将字符串A和字符串B转换为集合,然后使用交集操作符“&”来求它们的共同元素,最后返回共同元素的个数即可。
以下是示例代码:
```python
def count_common_chars(str_a, str_b):
set_a = set(str_a)
set_b = set(str_b)
common_set = set_a & set_b
return len(common_set)
```
测试代码:
```python
str_a = "hello world"
str_b = "world"
print(count_common_chars(str_a, str_b)) # 输出:5
```
解释:字符串A和字符串B中共同的字符有"o"、"r"、"l"、"d"、"w",因此共有5个相同字符。