344 Reverse String
题意:给出一个字符串对字符串进行翻转(reverse)
思路:直接使用切片函数进行翻转(网上看到的,具体怎么使用有点迷)[::-1]
代码:`class Solution(object):
def reverseString(self, s):
return s[::-1]`
557 Reverse Words in a String III
题意,给出一句话,将这句话里面每个单词的字母顺序改变,但是单词顺序不变输出。
思路:先用split()将字符串分割,再遍历,将字符串内每个单词进行翻转
代码:`class Solution(object):
def reverseWords(self, s):
l=[]
s=s.split()
for i in s:
l.append(i[::-1])
return " ".join(l)`
541 Reverse String II
题意:给定一个字符串,将字符串按照nk翻转,2n*k不翻转的规则进行处理。
思路:先将字符串分段,然后再根据段落进行处理最后将字符串输出。
代码:`class Solution(object):
def reverseStr(self, s, k):
al=len(s)//k+1
s=list(s)
last=[]
returnl=[]
for i in range(1,al+1):
if i<=al-1:
if i%2==1:
last.append(s[(i-1)*k:i*k][::-1])
elif i%2==0:
last.append(s[(i-1)*k:i*k])
elif i>al-1:
if i%2==1:
last.append(s[(i-1)*k:][::-1])
elif i%2==0:
last.append(s[(i-1)*k:])
for j in last:
for k in j:
returnl.append(k)
return "".join(returnl)`
258 Add Digits
题意:给定一个多位整数,将整数每位数字重复相加直到结果为个位数
思路:给定一个死循环,在里面不断求和即可。
代码:`class Solution(object):
def addDigits(self, num):
while 1:
if num<10:
return num
if num>=10:
result=0
while num!=0:
result += num%10
num//=10
num=result
`
202 Happy Number
题意:给定一个数,使这个数各位平方相加,如果最后的值是1则返回true,如果陷入死循环则返回false
思路:先给定一个死循环,然后先判断是否是1再判断是否是之前出现过的数,然后计算
代码:class Solution(object):
def isHappy(self, n):
numlist=[]
result=0
while 1:
if n==1:
return 1==1
for i in numlist:
if n==i:
return 1==2
numlist.append(n)
while n!=0:
result+=(n%10)**2
n//=10
n=result
result=0
263 Ugly Number
题意:给定一个数,如果这个数不被2 3 5且不为1则这个数为丑陋数(ugly number)
思路:死循环分别除1,先检测,如果数为0返回false
代码:
class Solution(object):
def isUgly(self, num):
while 1:
if num==0:
return 1==2
if num%2==0:
num/=2
elif num%3==0:
num/=3
elif num%5==0:
num/=5
elif num==1:
return 1==1
else:
return 1==2