力扣刷题-简单题型1

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值