字符串结构化算法(算法基础-字符串转换整数)
# 请你来实现一个 myAtoi(string s) 函数,
# 使其能将字符串转换成一个 32 位有符号整数(类似 C/C 中的 atoi 函数)
# 读入字符串并丢弃无用的前导空格
# 检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有) 确定最终结果是负数还是正数 如果两者都不存在,则假定结果为正
# 读入下一个字符,直到到达下一个非数字字符或到达输入的结尾字符串的其余部分将被忽略
# 将前面步骤读入的这些数字转换为整数(即,"123" -> 123, "0032" -> 32)如果没有读入数字,则整数为 0 必要时更改符号(从步骤
# 2 开始)
# 如果整数数超过 32 位有符号整数范围 [−2³¹, 231 − 1] ,需要截断这个整数,使其保持在这个范围内具体来说,小于 −2³¹ 的整数应该被固
# 定为 −2³¹ ,大于 231 − 1 的整数应该被固定为 231 − 1
class Solution:
""" 请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C 中的 atoi 函数)
# 给定字符串去除左右空格;
# 判断字符串首尾是否为 -号;
# 遍历各个字符是否为数字,如不是则遍历结束;
# 字符串转换为数字,int取值范围 [-2³¹, 2³¹ - 1]
"""
def myAtoi(self, s: str) -> int:
i = ""
for idx, t in enumerate(s.strip()):
if (t in "- " and idx == 0) or t.isdigit():
i = t
else:
break
i = "0" if not i or i in "- " else i
if -2147483648 <= int(i) <= 2147483647:
return int(i)
return 2147483647 if int(i) > 0 else -2147483648
,下面我们就来聊聊关于字符串结构化算法?接下来我们就一起去了解一下吧!
字符串结构化算法
# 请你来实现一个 myAtoi(string s) 函数,
# 使其能将字符串转换成一个 32 位有符号整数(类似 C/C 中的 atoi 函数)。
# 读入字符串并丢弃无用的前导空格
# 检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。
# 读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。
# 将前面步骤读入的这些数字转换为整数(即,"123" -> 123, "0032" -> 32)。如果没有读入数字,则整数为 0 。必要时更改符号(从步骤
# 2 开始)。
# 如果整数数超过 32 位有符号整数范围 [−2³¹, 231 − 1] ,需要截断这个整数,使其保持在这个范围内。具体来说,小于 −2³¹ 的整数应该被固
# 定为 −2³¹ ,大于 231 − 1 的整数应该被固定为 231 − 1 。
class Solution:
""" 请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C 中的 atoi 函数)
# 给定字符串去除左右空格;
# 判断字符串首尾是否为 -号;
# 遍历各个字符是否为数字,如不是则遍历结束;
# 字符串转换为数字,int取值范围 [-2³¹, 2³¹ - 1]
"""
def myAtoi(self, s: str) -> int:
i = ""
for idx, t in enumerate(s.strip()):
if (t in "- " and idx == 0) or t.isdigit():
i = t
else:
break
i = "0" if not i or i in "- " else i
if -2147483648 <= int(i) <= 2147483647:
return int(i)
return 2147483647 if int(i) > 0 else -2147483648
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com