sdut-判断两个字符串是否为变位词
时间: 2024-10-09 20:13:13 浏览: 43
SDUT (Software Development University of Tianjin) 提供的问题可能是让你编写一段程序来判断两个字符串是否为变位词,即这两个字符串包含的字符种类和数量都相同,但是顺序可以不同。例如,“listen”和“silent”就是一对变位词。
在编程中,这个问题通常通过计数每个字符串中各个字符的数量,然后比较两个计数数组是否相等来解决。以下是一个简单的Python示例:
```python
def is_anagram(s1, s2):
if len(s1) != len(s2): # 如果长度不等,则不是变位词
return False
char_count = [0] * 128 # 假设ASCII字符集大小为128
for char in s1:
char_count[ord(char)] += 1
for char in s2:
char_count[ord(char)] -= 1
for count in char_count:
if count != 0: # 如果有非零的计数值,说明不是变位词
return False
return True
# 测试
s1 = "listen"
s2 = "silent"
print(is_anagram(s1, s2)) # 输出:True
```
相关问题
sdut-统计两个字符串中相同的字符个数
题目描述:
给定两个字符串,统计它们中相同的字符个数。
思路:
可以使用哈希表来统计每个字符出现的次数,然后遍历另一个字符串,如果该字符在哈希表中出现过,则将计数器加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-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])
```
希望能帮到你!
阅读全文