1.两数之和
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
class solution:
def sum(self,nums,target):
result=[]
for i in range(0,len(nums)):
for j in range (i+i,len(nums)):
if nums[i]+nums[j]==target:
result.append(i)
result.append(j)
return result
if __name__=="__main__": #文件作为脚本直接执行
solution=solution()
print(solution.sum([1,2,3,4],3))
2.回文数
给你一个整数 x
,如果 x
是一个回文整数,返回 true
;否则,返回 false
。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
class solution:
def huiwenshu(self,x):
A=str(x) #它将参数转换成字符串类型,即人适合阅读的形式。
B=len(A)
if x<0:
return False
print(False)
for i in range(0,B):
if A[i]==A[B-i-1]:
return True
print(True)
if __name__=="__main__": #注意 name和main左右各有‘两个’下滑线
solution=solution()
print(solution.huiwenshu(121))
3.罗马数字转整数
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。
字符 数值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
#暴力破解法
def romanToint(s):
result=0
L=[]
for i in s:
if i=='I':
L.append(1)
elif i == 'V':
L.append(5)
elif i=='X':
L.append(10)
elif i=='L':
L.append(50)
elif i=='C':
L.append(100)
elif i=='D':
L.append(500)
elif i=='M':
L.append(1000)
for j in range(len(L)):
if j==len(L)-1:
result+=L[j]
else:
if L[j]<L[j+1]:
result-=L[j]
else:
result += L[j]
print(result)
return result
romanToint(s='DI')
# 输出为:501
#简约法 字典
def romanToint(x):
result=0
dict={'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000}
for i in range(0,len(x)-1):
if dict[x[i]]<dict[x[i+1]]:
result -= dict[x[i]]
else:
result += dict[x[i]]
result += dict[x[-1]]
print(result)
return result
romanToint('IV')
# 输出为:4