当前位置: 首页 > news >正文

asp.net网站开发工程师(c三折页设计那个网站做的好

asp.net网站开发工程师(c,三折页设计那个网站做的好,品牌设计的原则有哪些,网站开发公司广告word❓ 剑指 Offer 67. 把字符串转换成整数 难度#xff1a;中等 写一个函数 StrToInt#xff0c;实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。 首先#xff0c;该函数会根据需要丢弃无用的开头空格字符#xff0c;直到寻找到第一个非空格的字符为…❓ 剑指 Offer 67. 把字符串转换成整数 难度中等 写一个函数 StrToInt实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。 首先该函数会根据需要丢弃无用的开头空格字符直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时则将该符号与之后面尽可能多的连续数字组合起来作为该整数的正负号假如第一个非空字符是数字则直接将其与之后连续的数字字符组合起来形成整数。 该字符串除了有效的整数部分之后也可能会存在多余的字符这些字符可以被忽略它们对于函数不应该造成影响。 注意假如该字符串中的第一个非空格字符不是一个有效整数字符、字符串为空或字符串仅包含空白字符时则你的函数不需要进行转换。 在任何情况下若函数不能进行有效的转换时请返回 0。 说明 假设我们的环境只能存储 32 位大小的有符号整数那么其数值范围为 [ − 2 31 , 2 31 − 1 ] [−2^{31}, 2^{31} − 1] [−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) 。 注意本题与 8. 字符串转换整数 (atoi) 相同。 思路 根据题意有以下四种字符需要考虑 首部空格 删除之即可符号位 三种情况即 , - -新建一个变量 flag 保存符号位返回前判断正负即可。非数字字符 遇到首个非数字的字符时应立即跳出循环数字字符 字符转数字 “此数字的 ASCII 码” 与 “ 0 的 ASCII 码” 相减即str[i] - 0数字拼接 若从左向右遍历数字设当前位字符为 str[i] 当前位数字为 tmp 数字结果为 ans 则数字拼接公式为ans ans * 10 tmp 注意题目要求返回的数值范围应在 [ − 2 31 , 2 31 − 1 ] [-2^{31}, 2^{31} - 1] [−231,231−1]因此需要考虑数字越界问题。而由于题目指出 环境只能存储 32 位大小的有符号整数 因此判断数字越界时要始终保持 ans 在 int 类型的取值范围内。 如果为正 需要满足 (INT_MAX - tmp) / 10 ans 则一定不会越过 2 31 − 1 2^{31} - 1 231−1如果为负 需要满足 (INT_MIN tmp) / 10 ans则一定不会越过 − 2 31 -2^{31} −231 代码(C、Java) C class Solution { public:int strToInt(string str) {if(str.empty() || str.size() 0) return 0;int ans 0, flag 0;for(int i 0; i str.size(); i){if(str[i] flag 0) continue; //去除开头空格字符else if((str[i] - || str[i] ) flag 0){ //第一个非空字符正负号flag str[i] - ? -1 : 1;}else if(str[i] 0 || str[i] 9){break;}else{int tmp str[i] - 0;flag flag 0 ? 1 : flag;if(flag 1){if((INT_MAX - tmp) / 10 ans) ans ans * 10 tmp;else return INT_MAX;}else{if(ans 0) ans * -1;if((INT_MIN tmp) / 10 ans) ans ans * 10 - tmp;else return INT_MIN;}}}return ans;} };Java class Solution {public int strToInt(String str) {if(str null || str.length() 0) return 0;int ans 0, flag 0;for(int i 0; i str.length(); i){if(str.charAt(i) flag 0) continue; //去除开头空格字符else if((str.charAt(i) - || str.charAt(i) ) flag 0){ //第一个非空字符正负号flag str.charAt(i) - ? -1 : 1;}else if(str.charAt(i) 0 || str.charAt(i) 9){break;}else{int tmp str.charAt(i) - 0;flag flag 0 ? 1 : flag;if(flag 1){if((Integer.MAX_VALUE - tmp) / 10 ans) ans ans * 10 tmp;else return Integer.MAX_VALUE;}else{if(ans 0) ans * -1;if((Integer.MIN_VALUE tmp) / 10 ans) ans ans * 10 - tmp;else return Integer.MIN_VALUE;}}}return ans;} }运行结果 复杂度分析 时间复杂度 O ( n ) O(n) O(n)其中 n 为字符串的长度。我们只需要依次处理所有的字符处理每个字符需要的时间为 O ( 1 ) O(1) O(1)。空间复杂度 O ( 1 ) O(1) O(1)只需要常数空间存储。 题目来源力扣。 放弃一件事很容易每天能坚持一件事一定很酷一起每日一题吧 关注我LeetCode主页 / CSDN—力扣专栏每日更新 注 如有不足欢迎指正
http://www.hkea.cn/news/14437552/

相关文章:

  • 建设网站功能定位做磁力搜索网站违法吗
  • 用cms做个网站如何制作海报宣传图片
  • 做暧网站软件技术的就业前景
  • 广州百度网站推广天津品牌网站制作
  • 国外网站做推广2021年重大新闻事件
  • 百度网站的域名地址建设制作外贸网站的公司
  • 莱州网站建设公司电话网站开发推荐书籍
  • 北京网站优化体验专业网站建设 公司排名
  • 教育门户网站建设方案展示型网站怎么做
  • 为什么建设银行网站打不开建模外包网站
  • 医药网站开发网站客户留言
  • 网站后期的维护管理网站后台支持的字体
  • 网站建设公司方唯手机编程的app
  • 企业自建网站营销论文建设工程的在建设部网站
  • 新城镇建设官方网站手表网站背景素材
  • 给别人搭建网站普通电脑可以做网站服务器
  • 太原seo网站建设从入门到精通网站建设
  • 成功的网站必须具备的要素宁波网络公司联系方式
  • 网站设计展示体育馆路网站建设
  • 暗网是什么网站动感地带套餐
  • 网站域名分析做微网站的公司
  • 外贸网站如何做的好处全国婚孕检服务平台小程序
  • 外链网站有哪些设计制造中国第一架飞机的人是
  • 建站 赚钱如何做好网络宣传
  • nas wordpress外网网站如何优化推广
  • 叶涛网站推广优化域名服务dns的主要功能是
  • 中国建筑土木建设有限公司网站ppt 做的最好的网站
  • 东莞培训网网络seo啥意思
  • ui设计师怎么做自己的网站购书网亚马逊商城
  • 用四字成语做网站域名好吗wordpress搭建过程