数据结构与算法题

游游拿到了一个字符串,她希望你作如下变换:如果一个字符是大写字母,则将其变成下一个字母,即A变B,B变C,以此类推。(特殊的,如果是Z,则变成A)如果一个字符是小写字母,则将其变成上一个字母,即b变a,c变b以此类推。(特殊的,如果是a,则变成z)。如果不是英文字母,则不进行任何变换。请你帮游游输出变换后的字符串。

# import sys
# for line in sys.stdin:
#     a, b =map(int ,line.split())
#     print(a+b)
# import sys
# s = input()
# t = ""
# for i in s :
#     if i.isupper():
#         if i == "Z":
#             t+= "A"
#         else:
#             t+=chr(ord(i)+1)
#     elif i.islower():
#         if i == "a":
#             t+="z"
#         else:
#             t +=chr(ord(i)-1)
#     else:
#         t+=i
# print(t)

游游有n个字符串s_{i},第i个字符串的价值为a_{i}。游游希望选出两个字符串s_{i}s_{j}(i\neq j)满足s_{i}s_{j}的子串,且它们的价值之和尽可能大。你能帮帮她吗?

输入描述
第一行输入一个正整数n,代表字符串的数量。
接下来的n行,每行输入一个字符串s_{i}和一个正整数a_{i},代表第i个字符串和它的价值。
1\leqslant n\leqslant 100

1\leqslant a_{i}\leqslant 10^{9}

字符串长度不超过10,且仅包含小写字母。

输出描述
如果无法选择两个字符串,使得其中一个是另一个是子串,则输出-1.

# n  = int (input())
# strings=[]
# for i in range(n):
#     s,a = input().split()
#     strings.append((s,int(a)))
# max_value = -1
# for i in range(n):
#     for j in range(n):
#         if i ==j:
#             continue
#         if strings[i][0]in strings[j][0]:
#             value = strings[i][1] + strings[j][1]
#             if  value>max_value:
#                 max_value = value
# print(max_value)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值