一、题目:
1、输入一个字符串,输出其中每个字符的出现次数。要求使用标准库collotections中的Counter类。
2、输入一个字符串,输出其中只出现了一次的字符及其下标。
3、输入一个字符串,输出其中每个唯一字符最后一次出现的下标。
4、输入包含若干集合的列表,输出这些集合的并集。提示:使用reduce()函数和operator模块中的运算实现多个集合的并集。
5、输入一个字符串,输出加密后的结果字符串。加密规则为:每个字符的Unicode编码和下一个字符的Unicode编码相减, 用这个差的绝对值作为Unicode编码,对应的字符作为当前位置上字符的加密结果,最后一个字符是和第一个字符进行运算。
6、输入一个字符串,检查该字符串是否为回文(正着读和反着读都一样的字符串),如果是就输出Yes,否则输出No。要求使用切片实现。
代码区
'''
1.输入一个字符串,输出其中每个字符的出现次数。要去使用标准库collotections中的Counter类
2.输入一个字符床,输出其中只出现了一次的字符及其下标。
3.输入一个字符床,输出其中每个唯一字符最后一次出现的下标。
4.输入包含若干集合的列表,输出这些集合的并集。提示:使用reduce()函数和operator模块中的运算实现多个集合的并集。
5.输入一个字符串,输出加密后的结果字符串。加密规则为:每个字符的Unicode编码和下一个字符的Unicdode编码相减.
用这个差的绝对值作为Unicode编码,对应的字符作为当前位置上字符的加密结果,最后一个字符是和第一个字符进行运算。
6.输入一个字符串,检查该字符串是否为回文(正着读和反着读都一样的字符串),如果是就输出Yes,否则就输出No。要求用切片实现
'''
#1
def frequency():
'''
输入一个字符床,输出其中每个字符的出现次数
:return:
'''
from collections import Counter
text=input("请输入一个字符串:")
frequencies=Counter(text)
print(frequencies)
frequency()
#2
def one():
'''
输入一个字符床,输出其中只出现了一次的字符及其下标。
:return:
'''
text=input("请输入一个字符串:")
positions=[(ch,index) for index,ch in enumerate(text) if text.index(ch) == text.rindex(ch)]
print(positions)
one()
#3
def lest():
'''
输入一个字符串,输出其中每个唯一字符最后一次出现的下标
:return:
'''
dict1 = {'a': 0, 'b': 0, 'c': 0, 'd': 0, 'e': 0, 'f': 0, 'g': 0,
'h': 0, 'i': 0, 'j': 0, 'k': 0, 'l': 0, 'm': 0, 'n': 0,
'o': 0, 'p': 0, 'q': 0, 'r': 0, 's': 0, 't': 0, 'u': 0,
'v': 0, 'w': 0, 'x': 0, 'y': 0, 'z': 0}
num = 0 # 用于指示字符串的字符下标
def function(a, dict1, num):
for i in a:
num += 1
if i in dict1:
dict1[i] = num
return dict1
a = str(input("请输入一个字符串:"))
function(a, dict1, num)
for x in dict1:
if dict1[x] != 0:
print("char:{}, last site:{}".format(x, dict1[x]))
lest()
#4
def union():
'''
输入包含若干集合的列表,输出这些集合的并集
:return:
'''
from functools import reduce
last = eval(input("请输入一个列表:"));
print(reduce(lambda x,y:x|y,last));
union()
#5
def encryption():
'''
输入一个字符串,输出加密后的结果字符串。加密规则为:每个字符的Unicode编码和下一个字符的Unicode编码相减,
用这个差的绝对值作为Unicode编码,对于的字符作为当前位置上字符的加密结果,最后一个字符是和第一个字符进行运算
:return:
'''
text = input("请输入一个字符串:")
result = [chr(abs(ord(ch)-ord(text[index+1]))) for index,ch in enumerate(text(:-1))]
result.append(chr(abs(ord(text[-1])-ord(text[0]))))
print(result)
encryption()
#6
def palindrome():
'''
输入一个字符串,检查该字符串是否为回文(正着读和反着读都一样的字符串),如果是就输出Yes,否则输出No。要求使用切片实现
:return:
'''
str1 = input('请输入一个字符串')
str2 = str1[::-1]
if str1 == str2:
print('Yes')
else:
print('No')
palindrome()