题目一:字符串反转
题目描述
给定一个字符串,请编写一个函数,实现将字符串中的字符顺序反转。
解题思路
字符串反转可以通过多种方法实现,以下介绍两种常用的方法:
方法一:使用Python内置函数
Python的字符串类型内置了[::-1]切片功能,可以轻松实现字符串反转。
方法二:手动遍历
手动遍历字符串,将字符从后向前逐个添加到新字符串中。
代码实现
def reverse_string(s):
# 方法一:使用切片
return s[::-1]
# 方法二:手动遍历
# result = ""
# for i in range(len(s) - 1, -1, -1):
# result += s[i]
# return result
测试用例
test_str = "Hello, World!"
print(reverse_string(test_str)) # 输出: "!dlroW ,olleH"
题目二:查找字符串中所有重复字符
题目描述
给定一个字符串,请编写一个函数,找出字符串中所有重复出现的字符,并返回一个包含这些字符的列表。
解题思路
可以使用字典来记录每个字符出现的次数,然后遍历字典找出出现次数大于1的字符。
代码实现
def find_repeated_chars(s):
char_count = {}
for char in s:
char_count[char] = char_count.get(char, 0) + 1
repeated_chars = [char for char, count in char_count.items() if count > 1]
return repeated_chars
# 测试用例
test_str = "hello world!"
print(find_repeated_chars(test_str)) # 输出: ['l', 'o', 'd']
通过以上两题的解析,我们可以看到,掌握一些常用的编程技巧和Python内置函数,可以帮助我们快速解决面试中的算法题。在面试过程中,保持冷静,仔细阅读题目,选择合适的算法和数据结构,是解决问题的关键。
