简单题
1.HJ12字符串反转
2.HJ11数字颠倒
print(''.join(reversed(input())))
3.HJ54表达式求积
print(int(eval(input())))
4.HJ106字符逆序
5.HJ76尼科彻斯定力
6.HJ75公共子串计算
from operator import le
def solution(s1, s2):
maxlen = 0
if len(s1) >len(s2):
s1,s2 = s2,s1
for i in range(len(s1)):
for j in range(i,len(s1)):
if s1[i:j+1] in s2 and j+1 -i >maxlen:
maxlen = j+1-i
return maxlen
s = input()
t = input()
print(solution(s,t))
7.HJ86求最大连续bit数
data = int(input())
binary = '{:b}'.format(data)
data3 = [len(i) for i in binary.split('0')]
print(max(data3))
8.HJ85最长回文子串
while True:
try:
s = input()
res = []
for i in range(len(s)):
for j in range(i + 1, len(s) + 1):
if s[i:j] == s[i:j][::-1]:
res.append(j - i)
if res != "":
print(max(res))
except:
break
9.HJ100等差数列
n = int(input())
result = [i for i in range(2,3*n+2,3)]
print(sum(result))
10.HJ87密码强度等级
while True:
try:
s = input()
sc = 0
if len(s) <= 4:
sc = sc + 5
elif len(s) <= 7:
sc = sc + 10
else:
sc = sc + 25
isu = 0
isl = 0
for i in s:
if i.isupper():
isu = 1
break
for i in s:
if i.islower():
isl = 1
break
sc = sc + 10 * (isu + isl)
shu = "0123456789"
count1 = 0
for i in s:
if i in shu:
count1 = count1 + 1
if count1 == 1:
sc = sc + 10
elif count1 > 1:
sc = sc + 20
else:
sc = sc
fh = "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"
count2 = 0
for i in s:
if i in fh:
count2 = count2 + 1
if count2 == 1:
sc = sc + 10
elif count2 > 1:
sc = sc + 25
else:
sc = sc
if isu + isl == 2 and count1 >= 1 and count2 >= 1:
sc = sc + 5
elif isu + isl > 1 and count1 >= 1 and count2 >= 1:
sc = sc + 3
elif isu + isl > 1 and count1 >= 1:
sc = sc + 2
if sc >= 90:
print("VERY_SECURE")
elif sc >= 80:
print("SECURE")
elif sc >= 70:
print("VERY_STRONG")
elif sc >= 60:
print("STRONG")
elif sc >= 50:
print("AVERAGE")
elif sc >= 25:
print("WEAK")
elif sc >= 0:
print("VERY_WEAK")
except:
break
中等题
1.HJ10字符个数统计
print(len(set(input().replace('\n',''))))
2.HJ46截取字符串
data = input()
k = int(input())
print(data[:k])
3.HJ60查找组成一个偶数最接近的两个素数
def isSuShu(n):
if n<=2:
return True
else:
for i in range(2,n):
if n % i ==0:
return False
else:
return True
data = int(input())
for i in range(int(data / 2), data):
if isSuShu(i) and isSuShu(data-i):
print(data-i)
print(i)
break
4.HJ40统计字符
data = input()
a = 0
b = 0
c = 0
d = 0
for i in data:
tmp = ord(i)
if tmp == 32:
a+=1
elif 48 <=tmp <=57:
b+=1
elif 65 <=tmp <=90 or 97 <=tmp <=122:
d+=1
else:
c +=1
print(d)
print(a)
print(b)
print(c)
5.HJ14字符串排序
num = int(input())
stack = []
for i in range(num):
stack.append(input())
print("\n".join(sorted(stack)))
6.HJ5进制转换
data = input()
print(int(data,16))
7.HJ59找出字符串中第一个只出现一次的字符
from collections import Counter
data = input()
result = -1
c = Counter(data)
for i,v in c.items():
if v == 1:
result = i
break
print(result)
s = input()
for i in s:
if s.count(i) == 1:
print(i)
break
else:
print('-1')
8.HJ58输入n个整数,输出其中最小的K个
n, k = list(map(int, input().split()))
num = list(map(int, input().split()))
num = sorted(num)
for i in num[:k]:
print(i, end=" ")
9.HJ81字符串字符匹配
s1 = set(input())
s2 = set(input())
if set(s1) & set(s2) == set(s2):
print('true')
else:
print('false')