leecode 简单1

这篇博客介绍了使用Python解决算法问题的一些实例,包括两数之和、整数反转、回文判断、罗马数字转换和最长公共前缀。作者通过代码展示了如何处理这些问题,并分享了在解题过程中学到的技巧,如利用字符标志比较和循环嵌套。同时,也提到了一些复杂情况的处理,如括号匹配,并表示需要进一步学习和理解。
摘要由CSDN通过智能技术生成

两数之和
class Solution:
def twoSum(self, nums, target):
n = len(nums)
for i in range(n):
for j in range(i + 1, n):
if nums[i] + nums[j] == target:
return [i, j]

    return []

整数反转
class Solution:
def reverse(self, x: int) -> int:

        str_x = str(x)
        if str_x[0] == "-":
            x= -x
            str_x1=str(x)
            str_x1 = str_x1[::-1]
            x = int(str_x1)
            x = -x
            if -2147483648 < x < 2147483647:
                     return x  
            else:    x=0
        else:
                str_x = str_x[::-1]
                x = int(str_x)
        if -2147483648 < x < 2147483647:
                     return x  
        else:    x=0 
        return x

网站的python3 不支持str_x1[:0:-1]
故多加了几个步骤, 加上2个判断机制。终于过了…
回文比较简答
class Solution:
def isPalindrome(self, x: int) -> bool:
str_x = str(x)
if str_x[0] == “-”:
return False
elif str_x==str_x[::-1]:
return True
else:
return False
罗马字转换
class Solution:
def romanToInt(self, s: str) -> int:
a = {‘I’:1, ‘V’:5, ‘X’:10, ‘L’:50, ‘C’:100, ‘D’:500, ‘M’:1000}
ans=0
for i in range(len(s)):
if i<len(s)-1 and a[s[i]]<a[s[i+1]]:
ans-=a[s[i]]
else:
ans+=a[s[i]]
return ans
学到了可以给字符标志大小来比较,比自己编循环语句节约了不少,看到题解还有hash字典
以后再慢慢理解。

class Solution:
def longestCommonPrefix(self, strs: List[str]) -> str:
if len(strs)== 0:
return “”
len_strs=len(strs)
str_minlen=len(strs[0])
for i in range(0,len_strs):#算出此数组中最短的那个字符串的长度
if len(strs[i])<str_minlen:
str_minlen=len(strs[i])
answer=""
for i in range(0,str_minlen):
target=strs[0][i]#取第一个字符串的第i个字母作为比对的标准
for j in range(0,len_strs):#对每一个字符串的第i个字母进行比对
if strs[j][i]!=target:
return answer
answer=answer+target
return answer

学到了 可以在循环里套循环,太久没捡起来 已经忘了,脑袋里有思路不知道怎么实现。

class Solution:
def isValid(self, s: str) -> bool:
dic = {’)’:’(’,’]’:’[’,’}’:’{’}
stack = []
for i in s:
if stack and i in dic:
if stack[-1] == dic[i]: stack.pop()
else: return False
else: stack.append(i)
return not stack
一点也没明白…补知识去

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值