Study Plan For Algorithms - Part33
1. 有效数字
给定一个字符串 s ,返回 s 是否是一个 有效数字。
一般的,一个 有效数字 可以用以下的规则之一定义:
- 一个 整数 后面跟着一个 可选指数。
- 一个 十进制数 后面跟着一个 可选指数。
一个 整数 定义为一个 可选符号 '-' 或 '+' 后面跟着 数字。
一个 十进制数 定义为一个 可选符号 '-' 或 '+' 后面跟着下述规则:
- 数字 后跟着一个 小数点 .。
- 数字 后跟着一个 小数点 . 再跟着 数位。
- 一个 小数点 . 后跟着 数位。
指数 定义为指数符号 'e' 或 'E',后面跟着一个 整数。
数字 定义为一个或多个数位。
class Solution:
def isNumber(self, s: str) -> bool:
states = [
{ ' ': 0, 's': 1, 'd': 2, '.': 4 },
{ 'd': 2, '.': 4 } ,
{ 'd': 2, '.': 3, 'e': 5, ' ': 8 },
{ 'd': 3, 'e': 5, ' ': 8 },
{ 'd': 3 },
{ 's': 6, 'd': 7 },
{ 'd': 7 },
{ 'd': 7, ' ': 8 },
{ ' ': 8 }
]
p = 0
for c in s:
if '0' <= c <= '9': t = 'd'
elif c in "+-": t = 's'
elif c in "eE": t = 'e'
elif c in ". ": t = c
else: t = '?'
if t not in states[p]: return False
p = states[p][t]
return p in (2, 3, 7, 8)
2. 加一
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
class Solution:
def plusOne(self, digits: List[int]) -> List[int]:
n = len(digits)
for i in range(n - 1, -1, -1):
if digits[i] < 9:
digits[i] += 1
return digits
digits[i] = 0
return [1] + digits
本文来自博客园,作者:WindMay,转载请注明原文链接:https://www.cnblogs.com/stephenxiong001/p/18419696