python输入hello输出olleh_leetcode上的python练习(6)
(303)給定一個整數數組 nums,求出數組從索引 i到 j(i ≤ j) 范圍內元素的總和,包含 i, j兩點。
示例:
給定 nums = [-2, 0, 3, -5, 2, -1],求和函數為 sumRange()
sumRange(0, 2) -> 1
sumRange(2, 5) -> -1
sumRange(0, 5) -> -3
答:
class NumArray(object):
def __init__(self, nums):
"""
:type nums: List[int]
"""
self.nums=nums
def sumRange(self, i, j):
"""
:type i: int
:type j: int
:rtype: int
"""
sums=sum(self.nums[i:j+1])
return sums
# Your NumArray object will be instantiated and called as such:
# obj = NumArray(nums)
# param_1 = obj.sumRange(i,j)
(326)給定一個整數,寫一個函數來判斷它是否是 3 的冪次方。
示例 1:
輸入: 27
輸出: true
示例 2:
輸入: 0
輸出: false
示例 3:
輸入: 9
輸出: true
示例 4:
輸入: 45
輸出: false
答:
class Solution:
def isPowerOfThree(self, n):
"""
:type n: int
:rtype: bool
"""
while n>=3:
n=n/3
return n==1.0
(342)給定一個整數 (32 位有符號整數),請編寫一個函數來判斷它是否是 4 的冪次方。
示例 1:
輸入: 16
輸出: true
示例 2:
輸入: 5
輸出: false
答:
class Solution:
def isPowerOfFour(self, num):
"""
:type num: int
:rtype: bool
"""
while num>=4:
num/=4
return num==1.0
(344)編寫一個函數,其作用是將輸入的字符串反轉過來。
示例 1:
輸入: "hello"
輸出: "olleh"
示例 2:
輸入: "A man, a plan, a canal: Panama"
輸出: "amanaP :lanac a ,nalp a ,nam A"
答:
class Solution:
def reverseString(self, s):
"""
:type s: str
:rtype: str
"""
return s[::-1]
(345)編寫一個函數,以字符串作為輸入,反轉該字符串中的元音字母。
示例 1:
輸入: "hello"
輸出: "holle"
示例 2:
輸入: "leetcode"
輸出: "leotcede"
答:
class Solution:
def reverseVowels(self, a):
"""
:type s: str
:rtype: str
"""
b=[]
c=''
for i in a:
if i in "aeiouAEIOU":
b.append(i)
for i in a:
if i in "aeiouAEIOU":
c+=b.pop()
else:
c+=i
return c
(349)給定兩個數組,編寫一個函數來計算它們的交集。
示例 1:
輸入: nums1 = [1,2,2,1], nums2 = [2,2]
輸出: [2]
示例 2:
輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
輸出: [9,4]
答:
class Solution:
def intersection(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: List[int]
"""
a=[]
nums1=set(nums1)
nums2=set(nums2)
if len(nums1)>=len(nums2):
for i in nums2:
if i in nums1:
a.append(i)
if len(nums2)>len(nums1):
for i in nums1:
if i in nums2:
a.append(i)
return a
(350)給定兩個數組,編寫一個函數來計算它們的交集。
示例 1:
輸入: nums1 = [1,2,2,1], nums2 = [2,2]
輸出: [2,2]
示例 2:
輸入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
輸出: [4,9]
答:
class Solution:
def intersect(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: List[int]
"""
res = []
for k in nums1:
if k in nums2:
res.append(k)
nums2.remove(k)
return res
(367)給定一個正整數 num,編寫一個函數,如果 num 是一個完全平方數,則返回 True,否則返回 False。
注意:不要使用任何內置的庫函數,如 sqrt。
示例 1:
輸入: 16
輸出: True
示例 2:
輸入: 14
輸出: False
答:
class Solution:
def isPerfectSquare(self, n):
"""
:type num: int
:rtype: bool
"""
if n**0.5-int(n**0.5)==0:
return True
else:
return False
(371)不使用運算符 + 和-,計算兩整數a 、b之和。
示例:
若 a = 1 ,b = 2,返回 3。
答:
class Solution:
def getSum(self, a, b):
"""
:type a: int
:type b: int
:rtype: int
"""
return sum([a,b])
(374)我們正在玩一個猜數字游戲。 游戲規則如下:
我從 1 到 n 選擇一個數字。 你需要猜我選擇了哪個數字。
每次你猜錯了,我會告訴你這個數字是大了還是小了。
你調用一個預先定義好的接口 guess(int num),它會返回 3 個可能的結果(-1,1 或 0):
-1 : 我的數字比較小
1 : 我的數字比較大
0 : 恭喜!你猜對了!
示例:
n = 10, 我選擇 6.
返回 6.
答:
# The guess API is already defined for you.
# @param num, your guess
# @return -1 if my number is lower, 1 if my number is higher, otherwise return 0
# def guess(num):
class Solution(object):
def guessNumber(self, n):
"""
:type n: int
:rtype: int
"""
left=0
right=n
while left<=right:
middle=(left+right)//2
num=guess(middle)
if num==-1:
right=middle-1
if num==0:
return middle
if num==1:
left=middle+1
(383)給定一個贖金信 (ransom) 字符串和一個雜志(magazine)字符串,判斷第一個字符串ransom能不能由第二個字符串magazines里面的字符構成。如果可以構成,返回 true ;否則返回 false。
(題目說明:為了不暴露贖金信字跡,要從雜志上搜索各個需要的字母,組成單詞來表達意思。)
注意:
你可以假設兩個字符串均只含有小寫字母。
canConstruct("a", "b") -> false
canConstruct("aa", "ab") -> false
canConstruct("aa", "aab") -> true
答:
class Solution(object):
def canConstruct(self, ransomNote, magazine):
"""
:type ransomNote: str
:type magazine: str
:rtype: bool
"""
for i in ransomNote:
if i in magazine:
magazine = magazine.replace(i,'',1)
else:
return False
return True
(387)給定一個字符串,找到它的第一個不重復的字符,并返回它的索引。如果不存在,則返回 -1。
案例:
s = "leetcode"
返回 0.
s = "loveleetcode",
返回 2.
答:(超時)
class Solution:
def firstUniqChar(self, s):
"""
:type s: str
:rtype: int
"""
for i in s:
if s.count(i)==1:
return s.index(i)
return -1
答:
class Solution:
def firstUniqChar(self, s):
"""
:type s: str
:rtype: int
"""
dic=collections.Counter(s)
for i in range(len(s)):
if dic[s[i]]==1:
return i
return -1
(389)給定兩個字符串 s 和 t,它們只包含小寫字母。
字符串 t 由字符串 s 隨機重排,然后在隨機位置添加一個字母。
請找出在 t 中被添加的字母。
示例:
輸入:
s = "abcd"
t = "abcde"
輸出:
e
解釋:
'e' 是那個被添加的字母。
答:
class Solution:
def findTheDifference(self, s, t):
"""
:type s: str
:type t: str
:rtype: str
"""
dic=collections.Counter(s)
di=collections.Counter(t)
for i in di:
if dic[i]!=di[i]:
return i
總結
以上是生活随笔為你收集整理的python输入hello输出olleh_leetcode上的python练习(6)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql移植海思_海思Hi3518EV
- 下一篇: Java将map置空_Java实现过滤掉