leecode-剑指 Offer 06 从尾到头打印链表
剑指 Offer 06. 从尾到头打印链表输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例 1:
12输入:head = [1,3,2]输出:[2,3,1]
12345678910111213141516171819202122232425262728293031323334#!/usr/bin/env python# -*- coding: utf-8 -*-# author:sarizzm time:2021/1/7 0007# Definition for singly-linked list.class ListNode: def __init__(self, x): self.val = x self.next = Noneclass Solution: def reversePrint(self, head): pre = head result = [] if head is None: return result while p ...
leecode-剑指 Offer 05 替换空格
剑指 Offer 05. 替换空格请实现一个函数,把字符串 s 中的每个空格替换成”%20”。
示例 1:
12输入:s = "We are happy."输出:"We%20are%20happy."
限制:
10 <= s 的长度 <= 10000
12345678910111213141516171819202122232425#!/usr/bin/env python# -*- coding: utf-8 -*-# author:sarizzm time:2021/1/6 0006# 暴力求解class Solution: def replaceSpace(self, s): if s is None: return s st = str() for i in s: if i ==' ': st += '%20' else: st += i return stprint(Soluti ...
leecode-83-删除排序链表中的重复元素
leecode-83. 删除排序链表中的重复元素给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
12345678示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647#!/usr/bin/env python# -*- coding: utf-8 -*-# author:sarizzm time:2021/1/6 0006# Definition for singly-linked list.class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = nextclass Solution: def deleteDuplicates(self, hea ...
leecode-70- 爬楼梯
70. 爬楼梯假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
注意:给定 n 是一个正整数。
12345678910111213141516171819示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶 示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶
12345678910111213141516171819202122232425#!/usr/bin/env python# -*- coding: utf-8 -*-# author:sarizzm time:2021/1/6 0006class Solution: def climbStairs(self, n): # if n == 0: # return 0 # if n == 1: # return 1 # if n ...
leecode-67-二进制求和
leecode-67 二进制求和给你两个二进制字符串,返回它们的和(用二进制表示)。
输入为 非空 字符串且只包含数字 1 和 0。
12345678示例 1:输入: a = "11", b = "1"输出: "100"示例 2:输入: a = "1010", b = "1011"输出: "10101"
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061#!/usr/bin/env python# -*- coding: utf-8 -*-# author:sarizzm time:2021/1/6 0006class Solution: def addBinary(self, a, b): if len(a)<len(b): a,b = b, a a = [int(i) for i in a] b = [int(j) for j in ...
leecode-69-x 的平方根
leecode-69. x 的平方根实现 int sqrt(int x) 函数。
计算并返回 x 的平方根,其中 x 是非负整数。
由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。
12345678910示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。
123456789101112131415161718192021222324252627282930313233343536373839404142#!/usr/bin/env python# -*- coding: utf-8 -*-# author:sarizzm time:2021/1/6 0006class Solution: def mySqrt(self, x): # if x ==0: # return 0 # length = len(str(x))//2 # nums = 10**length # if nums * ...
leecode-58-最后一个单词的长度
leecode-58. 最后一个单词的长度给定一个仅包含大小写字母和空格 ‘ ‘ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。
如果不存在最后一个单词,请返回 0 。
说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。
1234示例:输入: "Hello World"输出: 5
12345678910111213141516171819202122232425262728class Solution: def lengthOfLastWord(self, s): if s == None: return 0 length = 0 ch = 0 # 标记 最后一个不为空格的地方,也可以用循环提出空格 for i in s[::-1]: if i == ' ' and ch != 0: return length elif i ==' ': ...
leecode-38-外观数列
leecode-38. 外观数列给定一个正整数 n ,输出外观数列的第 n 项。
「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。
你可以将其视作是由递归公式定义的数字字符串序列:
countAndSay(1) = “1”countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。前五项如下:
123456789101. 12. 113. 214. 12115. 111221 第一项是数字 1 描述前一项,这个数是 1 即 “ 一 个 1 ”,记作 "11" 描述前一项,这个数是 11 即 “ 二 个 1 ” ,记作 "21" 描述前一项,这个数是 21 即 “ 一 个 2 + 一 个 1 ” ,记作 "1211" 描述前一项,这个数是 1211 即 “ 一 个 1 + 一 个 2 + 二 个 1 ” ,记作 "111221"
要 描述 一个数字字符串,首先要将字符串分割为 最小 数量的组,每个组都由连续的最多 相同字符 组成。然后对于每个组,先描述字符的数量,然后描述字符,形成一个描述 ...