name='Nancy'
print('hello!',name,'!')
解题思路: 1. 输入一个字符串,输出其中不同字母的个数: a. 定义一个空字典,用于存储不同字母及其出现次数 b. 循环遍历输入字符串的每个字符,如果该字符不在字典的键中,则将该字符作为键存入字典,并将值初始化为1;否则,将该字符对应的值加1 c. 遍历完成后,字典的键值对数量即为不同字母的个数 2. 输入一个由数字组成的列表,返回其中任意两个数相乘的最大值 a. 将列表从大到小排序 b. 取列表中前两个数作为最大值和次大值,并初始化乘积max_product为这两个数的积 c. 从列表中第三个数开始遍历,每次将当前数与次大值比较,如果大于次大值,则将最大值赋值为次大值,将当前数赋值为次大值;否则,当前数是次大值。计算当前数与最大值的乘积,如果大于max_product,则更新max_product的值 d. 遍历完成后,max_product即为列表中任意两个数的最大乘积
参考代码如下:
def count_distinct_chars(str): # 定义一个空字典,用于存储不同字母及其出现次数 char_dict = {} # 循环遍历输入字符串的每个字符,如果该字符不在字典的键中,则将该字符作为键存入字典,并将值初始化为1;否则,将该字符对应的值加1 for char in str: if char not in char_dict.keys(): char_dict[char] = 1 else: char_dict[char] += 1 # 遍历完成后,字典的键值对数量即为不同字母的个数 return len(char_dict.keys())
def max_product(num_list): # 将列表从大到小排序 num_list.sort(reverse=True) # 取列表中前两个数作为最大值和次大值,并初始化乘积max_product为这两个数的积 max_num = num_list[0] sec_max_num = num_list[1] max_product = max_num * sec_max_num # 从列表中第三个数开始遍历, for i in range(2, len(num_list)): # 每次将当前数与次大值比较,如果大于次大值,则将最大值赋值为次大值,将当前数赋值为次大值;否则,当前数是次大值 if num_list[i] > sec_max_num: sec_max_num = num_list[i] if sec_max_num > max_num: tmp = max_num max_num = sec_max_num sec_max_num = tmp # 计算当前数与最大值的乘积,如果大于max_product,则更新max_product的值 product = max_num * sec_max_num if product > max_product: max_product = product return max_product