sdut-统计两个字符串中相同的字符个数
时间: 2023-04-16 12:04:49 浏览: 248
题目描述:
给定两个字符串,统计它们中相同的字符个数。
思路:
可以使用哈希表来统计每个字符出现的次数,然后遍历另一个字符串,如果该字符在哈希表中出现过,则将计数器加1。
代码实现:
```python
def count_same_chars(str1, str2):
# 统计第一个字符串中每个字符出现的次数
count = {}
for ch in str1:
count[ch] = count.get(ch, 0) + 1
# 遍历第二个字符串,统计相同字符的个数
same_count = 0
for ch in str2:
if ch in count and count[ch] > 0:
same_count += 1
count[ch] -= 1
return same_count
```
测试:
```python
str1 = 'hello'
str2 = 'world'
print(count_same_chars(str1, str2)) # 2
```
相关问题
sdut-string-4 去除字符串中数字字符逆序输出
可以使用正则表达式和字符串反转函数来实现。
首先,使用正则表达式匹配字符串中的数字字符,然后将其替换为空字符串,得到一个不包含数字字符的新字符串。接着,使用字符串反转函数将新字符串反转,得到逆序输出的结果。
具体代码如下:
```python
import re
def reverse_string_without_digits(s):
# 使用正则表达式匹配数字字符,并将其替换为空字符串
s = re.sub(r'\d', '', s)
# 使用字符串反转函数将新字符串反转
s = s[::-1]
return s
# 测试
s = 'sdut1234string5678'
print(reverse_string_without_digits(s)) # 输出:gnirtsutds
```
以上代码中,`re.sub(r'\d', '', s)` 表示将字符串 `s` 中的所有数字字符替换为空字符串,`s[::-1]` 表示将字符串 `s` 反转。
sdut-string-3 字符串字母大小写转换逆序输出
这道题要求将输入的字符串中的字母大小写进行转换,并将转换后的字符串逆序输出。
具体做法如下:
1. 首先,我们需要读入一个字符串,可以使用 input() 函数来实现。
2. 然后,我们需要遍历字符串中的每一个字符,判断它是否为字母。如果是字母,就将它的大小写进行转换,否则就不做处理。
3. 转换大小写可以使用字符串的 upper() 和 lower() 方法。
4. 将转换后的字符依次添加到一个新的字符串中。
5. 最后,将新的字符串逆序输出即可。
下面是代码实现:
```python
s = input() # 读入字符串
new_s = '' # 新的字符串
# 遍历字符串中的每一个字符
for c in s:
# 判断是否为字母
if c.isalpha():
# 转换大小写
if c.isupper():
c = c.lower()
else:
c = c.upper()
# 添加到新的字符串中
new_s += c
# 逆序输出新的字符串
print(new_s[::-1])
```
希望能帮到你!