給定兩個字符串,你須要從這兩個字符串中找出最長的特殊序列。最長特殊序列定義以下:該序列爲某字符串獨有的最長子序列(即不能是其餘字符串的子序列)。python
子序列能夠經過刪去字符串中的某些字符實現,但不能改變剩餘字符的相對順序。空序列爲全部字符串的子序列,任何字符串爲其自身的子序列。數組
輸入爲兩個字符串,輸出最長特殊序列的長度。若是不存在,則返回 -1。app
示例 :函數
輸入: "aba", "cdc" 輸出: 3 解析: 最長特殊序列可爲 "aba" (或 "cdc")
說明:工具
首先先把特例幹掉 輸入爲兩個字符串,輸出最長特殊序列的長度。若是不存在,則返回 -1。 其次按照題目描述走
class Solution: def findLUSlength(self, a: str, b: str) -> int: if a == b : return -1 return max(len(a),len(b))
判斷一個整數是不是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是同樣的整數。excel
示例 1:code
輸入: 121 輸出: true
示例 2:leetcode
輸入: -121 輸出: false 解釋: 從左向右讀, 爲 -121 。 從右向左讀, 爲 121- 。所以它不是一個迴文數。
示例 3:字符串
輸入: 10 輸出: false 解釋: 從右向左讀, 爲 01 。所以它不是一個迴文數。
用切片工具進反轉
class Solution(object): def isPalindrome(self, x): """ :type x: int :rtype: bool """ if str(x)[::-1] == str(x)[:]: return True else: return False
給定一個數組 nums
,編寫一個函數將全部 0
移動到數組的末尾,同時保持非零元素的相對順序。get
示例:
輸入: [0,1,0,3,12] 輸出: [1,3,12,0,0]
說明:
儘可能減小操做次數。
個人思路是先記錄0的數量,把0刪光,再根據計數0的個數末尾加上去
class Solution: def moveZeroes(self, nums: List[int]) -> None: """ Do not return anything, modify nums in-place instead. """ num_0 = 0 while 0 in nums: index_0 = nums.index(0) nums.pop(index_0) num_0 += 1 for a in range(num_0): nums.append(0)
有更加好的思路,或者解題方法評論區留言謝謝