问题:给你一个整数n,从1到n按照下面的规则打印每个数:
如果这个数被3整除,打印fizz
如果这个数被5整除,打印buzz
如果这个数同时被3和5整除,打印fizz buzz
样例:
输入n=15
输出:["1","2","fizz","4","buzz","fizz","7","8","fizz","buzz","11","fizz","13","14","fizz buzz"]
class Solution:
def fizzBuzz(self, n):
results = []
for i in range(1, n+1):
if i % 3 == 0 and i % 5 == 0:
results.append('fizz buzz')
elif i % 3 == 0:
results.append('fizz')
elif i % 5 == 0:
results.append('buzz')
else:
results.append(str(i))
return results
s = Solution()
print(s.fizzBuzz(15))
class Solution:
def fizzBuzz(self, n):
return ['fizz buzz' if i % 3 == 0 and i % 5 == 0 else 'fizz' if i % 3 == 0 else 'buzz' if i % 5 == 0 else str(i) for i in range(1, n + 1)]
s = Solution()
print(s.fizzBuzz(15))
翻转3位数字
样例:
123得到321
900得到9
class Solution:
def reverseInteger(self, number):
c = number % 10
b = number // 10 % 10
a = number // 100
return c * 100 + b * 10 + a
s = Solution()
print(s.reverseInteger(123))
class Solution:
def reverseInteger(self, number):
return int(str(number)[::-1])
s = Solution()
print(s.reverseInteger(123))
求3个整数中最大的一个数
样例:
num1=1,num2=9,num3=3,return=9
class Solution:
def maxOfThreeNumbers(self, num1, num2, num3):
if num1 > num2 and num1 > num3:
return num1
elif num2 > num3:
return num2
else:
return num3
s = Solution()
print(s.maxOfThreeNumbers(1, 9, 3))
class Solution:
def maxOfThreeNumbers(self, num1, num2, num3):
max_value = num1
if num2 > max_value:
max_value = num2
if num3 > max_value:
max_value = num3
return max_value
s = Solution()
print(s.maxOfThreeNumbers(1, 9, 3))
求方程的根
import math
class Solution:
def rootOfEquation(self, a, b, c):
if b * b - 4 * a * c < 0:
return []
if b * b - 4 * a * c == 0:
return [-b / (2.0 * a)]
delta = math.sqrt(b * b - 4 * a * c)
return sorted([(-b - delta) / (2.0 * a), (-b + delta) / (2.0 * a)])
s = Solution()
print(s.rootOfEquation(1, -3, 2))
线性数据结构
字符串转整数
class Solution:
def stringToInteger(self, str):
sig = 1
start = 0
if str[0] == '-':
sig = -1
start = 1
num = 0
for idx in range(start, len(str)):
num = num * 10 + ord(str[idx]) - ord('0')
return num * sig
s = Solution()
print(s.stringToInteger('-123'))
旋转字符串
class Solution:
def rotateString(self, str, offset):
if offset > len(str) and len(str) > 0:
offset = offset % len(str)
tenp = (str * 2)[len(str) - offset:2 * len(str) - offset]
for idx in range(len(str)):
str[idx] = tenp[idx]
return str
s = Solution()
print(s.rotateString(list('abcdefg'), 3))
给定一个数组和一个值,在原地删除与值相同的数字,返回新数组的长度
class Solution:
def removeElement(self, A, elem):
A_count, i = 0, 0
while i < len(A):
if A[i] == elem:
A.pop(i)
A_count = A_count + 1
else:
i = i + 1
return len(A)
s = Solution()
print(s.removeElement([1, 2, 3, 1, 4], 1))
网友评论