leetcode刷题笔记坚持第二天

leetcode刷题第二天

  1. 1796.字符串中第二大的数字
    leetcode刷题笔记坚持第二天_第1张图片
class Solution:
    def secondHighest(self, s: str) -> int:
    	ans = maxmum = -1#第二大和最大都为-1
    	for c in s:
    		if '0' <= c <='9':
    			n = int(c)#n为c的数值
    			if n > maxmum:#如果n>最大值
    				ans = maxmum# 第二大为最大值
    				maxmum = n#最大值为n
    			elif n > ans and n!=maxmum:#如果n大于第二大 且n!=最大值
    				ans = n#第二大为n
    	return ans	#最后返回第二大的值

leetcode刷题笔记坚持第二天_第2张图片

  1. 6 .z形变换leetcode刷题笔记坚持第二天_第3张图片
class Solution:
    def convert(self, s: str, numRows: int) -> str:
    	if numRows==1:#如果行数为1,返回原字符串
    		return s
    	res = [['0'] for _ in range(numRows+1)]#res是生成行数列的0字符串
		for i in range(len(s)):#i在0-len(s)-1的范围内遍历
            if i % (2*numRows-2) < numRows-1:#如果i对2*行数-2取余小于行数-1
                res[i % (2 * numRows - 2)].append(s[i])#res字符串的数值增添为s[i]
            else:
                res[numRows-(i%(2*numRows-2))%numRows-2].append(s[i])
        final_res =''
        for idx in range(len(res)):#在字符串中遍历
            final_res+=''.join(res[idx][1:])#从第一列开始遍历
        return final_res    	
    	

leetcode刷题笔记坚持第二天_第4张图片
明天继续加油坚持!

你可能感兴趣的:(python,leetcode,算法,python)