pythyon 刷leetcode 题目 (7)

实现aoti() 函数 看到一到题目,要自己实现atoi()函数,标准库里的atoi 是这样要求的: 参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。否则,返回零。 而且还得考虑溢出的问题。 我自己尝试了一下,跟网上大神的对比,逻辑不够清晰,估计只能自己看得懂。大神用的是C++,除了输入输出函数C不同外,其余代 阅读详情

1、验证回文字符串

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。

说明:本题中,我们将空字符串定义为有效的回文串。

示例 1:

输入: "A man, a plan, a canal: Panama"
输出: true

示例 2:

输入: "race a car"
输出: false

代码如下:

class Solution:
    def isPalindrome(self, s):
        """
        :type s: str
        :rtype: bool
        """
        if len(s) == 0:
            return True
        def isChar(char):
            q = char.isalpha()
            if 48 <= ord(char) <= 57:
                p = 1
            else:
                p= 0
            return p or q
       
        s = list(filter(isChar, s))
        ss = "".join(s).lower()
        if ss == ss[::-1]:
            return True
        else:
            return False
   

2、字符串转整数 (atoi)

实现 atoi,将字符串转为整数。

在找到第一个非空字符之前,需要移除掉字符串中的空格字符。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。

字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,它们对于函数没有影响。

当字符串中的第一个非空字符序列不是个有效的整数;或字符串为空;或字符串仅包含空白字符时,则不进行转换。

若函数不能执行有效的转换,返回 0。

说明:

假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231,  231 − 1]。如果数值超过可表示的范围,则返回  INT_MAX (231 − 1) 或 INT_MIN (−231) 。

示例 1:

输入: "42"
输出: 42

示例 2:

输入: "   -42"
输出: -42
解释: 第一个非空白字符为 '-', 它是一个负号。
     我们尽可能将负号与后面所有连续出现的数字组合起来,最后得到 -42 。

示例 3:

输入: "4193 with words"
输出: 4193
解释: 转换截止于数字 '3' ,因为它的下一个字符不为数字。

示例 4:

输入: "words and 987"
输出: 0
解释: 第一个非空字符是 'w', 但它不是数字或正、负号。
     因此无法执行有效的转换。

示例 5:

输入: "-91283472332"
输出: -2147483648
解释: 数字 "-91283472332" 超过 32 位有符号整数范围。 
     因此返回 INT_MIN (−231) 。

代码如下:用时88ms

class Solution:
    def myAtoi(self, str):
        """
        :type str: str
        :rtype: int
        """
        import re 
        res = re.findall(r"^[\-\+]?\d+", str.strip())    ### res is a list type
           ### list transfer to str
        if len(res) != 0:
            res_str = res[0]
            if res_str[0] == '-' or res_str[0] == '+':
                temp_str = res_str[1:]
            else:
                temp_str = res_str
            res_int = int(temp_str)   #### str type transfer int type
             
            if res_str[0] == '-':
                return -res_int if res_int <= 2**31 else -2 **31 
            
            else:
                return res_int if res_int < 2**31 else 2**31 -1
        else:
            return 0
互相学习,互相指教 。
网格自适应实战 | 攻克超弹性体大变形不收敛难题 本文针对超弹性体(如橡胶)在大变形仿真中因网格严重扭曲导致计算不收敛的难题,提供了基于ANSYS网格自适应技术的实战解决方案。文章详细阐述了从问题诊断、模型准备到核心参数设置的完整流程,并介绍了结合混合U-P单元技术的进阶组合策略,有效攻克了材料压缩等场景下的仿真收敛问题。 阅读详情

相关推荐

硬件工程师进阶之路:从电路基础到PCB设计实战核心技能

硬件电路设计是一项融合电路理论、器件特性与工程实践的复合型技术。一块稳定可靠的电路板,不仅需要正确的原理图,更依赖于合理的叠层规划、元器件布局与布线策略。在高速数字电路日益普及的今天,信号完整性、电源完整性与电磁兼容性设计已成为决定产品成败的关键因素,工程师需要深入理解阻抗匹配、回流路径、去耦电容布置等技术原理,并将理论灵活应用于通信设备、消费电子、工业控制等各类产品研发场景。PCB设计正是连接电原理图与可量产产品之间的核心枢纽,也是硬件工程师能力进阶过程中的分水岭技能。掌握从基础电路分析到高速PCB设计,

weixin_29183637的博客 265

itoa和aoti函数的自我实现

itoa和atoi的自我实现

iccoke的博客 2267

Win11系统下Notepad++右键菜单失效?3种修复方法实测有效(附注册表备份指南)

本文针对Windows 11系统中Notepad++右键菜单失效的常见问题,提供了三种经过实测有效的修复方法。核心解决方案包括使用官方NppShell.dll重新注册、手动修复注册表项以及系统级问题排查,并详细说明了操作前的注册表备份指南,确保修复过程安全可靠。

m2n3b4v5c6的博客 328

C++实现aoti()函数

#include<iostream> using namespace std; int my_aoti(const char*str) { int flag = 1; int num = 0; //判断指针是否为空 if (str == NULL) { cout << "ERROR" << endl; return 0 ; } //判断前面的符号 if (*str == '-' || *str == '+') { if (*str ==

weixin_45126405的博客 2497

LD分析实战:基于Plink和R的连锁不平衡计算与可视化全流程

本文详细介绍了基于Plink和R的连锁不平衡(LD)分析全流程,包括基因型数据预处理、LD计算参数设置及结果可视化技巧。通过实战案例解析PLINK文件格式转换、r²值计算关键参数,并展示如何使用ggplot2绘制高质量LD热图,帮助研究人员高效完成基因组关联分析。

weixin_29074295的博客 320

vivado 编译ADI AD9361 TCL脚本生成hdl工程

(4)输入"source ../../scripts/adi_make.tcl"命令(仅双引号内部命令,不包含双引号),个人理解:该命令用来加载当前所需要编译工程所需要各功能模块的信息,因为每个工程需要不同的功能模块,比如有的需要gpio模块,有的不需要gpio模块,这些模块上前面路径的library也同样以TCL脚本形式存在,当有需要时才进行编译,怎么知道当前工程需要什么模块呢就是通过"source ../../scripts/adi_make.tcl"(仅双引号内部命令,不包含双引号)命令实现。

weixin_40586423的博客 809

LeetCode第八题之字符串转整数 (atoi)

实现 atoi,将字符串转为整数。在找到第一个非空字符之前,需要移除掉字符串中的空格字符。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,它们对于函数没有影响。当字符串中的第一个非空字符序列不是个...

java的平凡之路 1266

Unity Shader变体优化实战:从内存削减到打包加速

本文深入探讨了Unity项目中Shader变体数量爆炸导致的打包缓慢、内存占用过高及包体臃肿等问题。核心解决方案是通过精准的Shader变体裁剪,即收集项目实际用到的变体形成“白名单”,并利用IPreprocessShaders接口在打包时剔除无用变体。实战表明,该方法能显著提升打包速度并大幅降低运行时内存。

weixin_29300241的博客 217

函数实现-aoti-atol

1. 函数原型     int atoi ( const char * str );    long int atol ( const char * str ); 2. 函数工作     atoi是将字符串转化为整型,atol是将字符串转化为长整型,这两个函数的实现十分相似。工作步骤基本如下:   ·跳过若干空格、制表符等   ·如果有正号或者负号,进行识别   ·将数字整合到结果中,直到字...

weixin_33922670的博客 307

【QT开发教程】使用Qt进行蓝牙低功耗(BLE)编程

蓝牙低功耗(BLE,Bluetooth Low Energy)技术广泛应用于现代设备中,例如智能手表、健身追踪器和物联网设备。Qt提供了一套完整的Bluetooth模块,使开发者可以轻松地在应用程序中实现BLE通信功能。本文将介绍如何在Qt中进行BLE编程,包括基本概念、使用方法以及一些实际的示例。

科技改变人类,技术成就未来 2869

手把手教你完成YOLOv10 PySide6目标检测界面搭建,使用Qt6设计YOLOv10检测系统,前台系统+后台管理系统开发实战,可用于大论文凑工作量或毕设必备,全网最详细教程

手把手教你完成YOLOv10 PySide6目标检测界面搭建,使用Qt6设计YOLOv10检测系统,前台系统+后台管理系统开发实战,可用于大论文凑工作量或毕设必备,全网最详细教程

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1733

leetcode--字符串转换为整数

leetcode--字符串转换为整数(C语言)

navylhjjlh的博客 790

使用Python实现卷积神经网络(CNN)

卷积神经网络是一种专门用于处理具有网格状拓扑结构数据(如图像、声音)的深度学习模型。CNN的核心组件是卷积层和池化层,它们能够有效地从图像中提取特征并实现空间不变性,使得模型能够对图像中的物体进行识别和分类。我们定义一个简单的卷积神经网络模型,包括卷积层、池化层和全连接层。return x# 创建模型实例我们选择交叉熵损失函数作为分类任务的损失函数,并使用随机梯度下降(SGD)作为优化器。

Echo_Wish 4489

leetcode中整数转字符的使用

leetcode上整数转字符串itoa()函数不能用,字符串转整数atoi()可以用 itoa是广泛应用的非标准C语言和C++语言扩展函数,但它不是标准C/C++语言函数,所以不能在所有的编译器中使用。不过大多数的编译器(如Windows上的)通常在头文件<stdlib.h>/头文件中包含这个函数。 https://leetcode-cn.com/problems/maximum-swap/solution/si-lu-xian-jiang-shu-zi-zhuan-huan-wei-zi-f.

Christiansh的博客 1040

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

算法技巧2:atoi函数:字符串变数字

尽管说不知道用不用,但还是写出来吧。 此函数放在#include中。 它可以让字符串数字转变成数字。 例如。 #include #include int main() {  char a[]="60",b[]="-40",c;  c=atoi(a)+atoi(b);  printf("%d",c);  return 0; } 结果为20.

Bonstoppo 496

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

atoi函数的初步实现到完美优化

从0到1 完美实现atoi

小萌新的博客 1372

aoti、stoi和to_string

string和int之间的转换 #include<cstring> std::string src_str = "1234"; int num = std::stoi(src_str); int num1 = std::atoi(src_str.c_str()); std::string str = std::to_string(1234); stoi(const string& str),会做范围检查,默认范围是在int的范围内的,如果超出范围的话,则会runtime erro

薛定谔的猫头咕咕咕 556

leetcode刷题:The string "PAYPALISHIRING"

题目描述:The string “PAYPALISHIRING” is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)P…….A……..H…….N ..A..P….

bbbprefect的博客 1596

c++ to_string、stoi()、atoi()使用

1、to_string      包含在# include&lt;string&gt;。作用是把数值类型如int、double、long等转化为string,详细可参考博客:https://blog.youkuaiyun.com/lzuacm/article/details/52704931 int a = 4; double b = 3.14; string str1, str2; str1 = to...

zj15939317693的博客 1万+

leetcode字符串转换整数

请你来实现一个atoi函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可...

草帽小子的博客 295

atoi函数实现

参考代码: int atoi(const char *str) { if(str == NULL || *str == '\0') { printf("invalid input\n"); return 0; } int sign = 1; int sum = 0; if(*str == ' ') ++str; if(*str == '+') ++str; else if

murongjianke001的专栏 461

6. Z 字形变换

6. Z 字形变换 难度中等1036收藏分享切换为英文接收动态反馈 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行Z 字形排列。 比如输入字符串为 "PAYPALISHIRING"行数为 3 时,排列如下: P A H N A P L S I I G Y I R 之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"。 请你实现这个将字符串进行指定行数变换的函数: string conver..

hhhsy217的博客 196

【字符串转换整数 (atoi)】C++

字符串转换整数 (atoi) c++

qq_51214753的博客 484

C++中的stoi(),atoi() ,to_string()

使用 atoi 对字符串 string 进行转化的话,就需要 c_str() 函数将 const string* 类型 转化为 cons char* 类型。将数字常量(int,double,long等)转换为字符串(string),返回转换好的字符串。都是将字符串转化为 int 类型,但是还是有区别的,stoi 的参数是 const string* 类型。atoi 的参数是 const char* 类型。stoi()和atoi()头文件都是string。

qq_42251157的博客 1756

字符串转换整数 (atoi)(String to Integer (atoi))

字符串转换整数 (atoi)(String to Integer (atoi))

weixin_45483328的博客 505

[LeetCode 中等]8. 字符串转换整数 (atoi)

题目描述 请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。 函数 myAtoi(string s) 的算法如下: 读入字符串并丢弃无用的前导空格 检查第一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。 读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。 将前面步骤读入的这些数字转换为整数(即,“1

weixin_50088096的博客 682

atoi字符串转数字

包含头文件:stdlib.h 函数原型 用法:将字符串里的数字字符转化为整形数。返回整形值。 注意:转化时跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(’/0’)才结束转换,并将结果返回。 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> #include<stdlib.h> //atoi字符串转数字 void test() { cha

m0_53157173的博客 797
上一篇: python 刷 leetcode题目(6)
下一篇: python 刷leetcode 题目(8)
凌疯墨子
博客等级 码龄11年 47粉丝 81原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值