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

算法通关村第十二关|青铜|字符串转换整数

1.转换成小写字母

原题:力扣709.

字符串大写转小写有现成的API使用,但是我们也可以自己来实现。

使用或运算进行加操作能提高效率,因为 32 对应的二进制表示为 00100000 ,而大写字母的范围 [65, 90] 的二进制表示在 00100000 的为 1 的位置均为 0 ,所以直接或操作就可以实现和加 32 一样的效果。

class Solution {public String toLowerCase(String s) {StringBuilder sb = new StringBuilder();for (int i = 0; i < s.length(); i++) {char ch = s.charAt(i);if (ch >= 65 && ch <= 90) {ch |= 32;}sb.append(ch);}return sb.toString();}
}

2.字符串转换整数(atoi)

原题:力扣8.

用 index 遍历字符串数组。

public int myAtoi(String str) {int len = str.length();char[] charArray = str.toCharArray();int index = 0;while (index < len && charArray[index] = ' ') {index++;}if (index == len) {return 0;}int sign = 1;char firstChar = charArray[index];if (firstChar == '+') {index++;} else if (firstChar == '-') {index++;sign = -1;}int res = 0;while (index < len) {char currChar = charArray[index];if (currChar > '9' || currChar < '0') {break;}// 处理溢出情况if (res > Integer.MAX_VALUE / 10 || (res == Integer.MAX_VALUE / 10 && (currChar - '0') > Integer.MAX_VALUE % 10)) {return Integer.MAX_VALUE;}if (res < Integer.MIN_VALUE / 10 || (res == Integer.MIN_VALUE / 10 && (currChar - '0') > -(Integer.MIN_VALUE % 10))) {return Integet.MIN_VALUE;}// 为了便于处理溢出情况,每次给 res 赋值都带 sign ,保证 res 的正负性res = res * 10 + sign * (currChar - '0');index++;}return res;
}

如果对您有帮助,请点赞关注支持我,谢谢!❤
如有错误或者不足之处,敬请指正!❤
个人主页:星不易 ❤
算法通关村专栏:不易|算法通关村 ❤

http://www.lryc.cn/news/239965.html

相关文章:

  • CSS实现空心的“尖角”
  • 算法 全排列的应用
  • 环境配置|GitHub——如何在github上搭建自己写的网站
  • Windows系统中curl和wget命令下载说明
  • 山西电力市场日前价格预测【2023-11-24】
  • 说说你对 shell 的理解以及常见的命令?
  • 数据结构之双向带头循环链表函数功能实现与详细解析
  • SpringBoot_websocket实战
  • 香港科技大学广州|机器人与自主系统学域博士招生宣讲会—同济大学专场!!!(暨全额奖学金政策)
  • python基于GCN(图卷积神经网络模型)和LSTM(长短期记忆神经网络模型)开发构建污染物时间序列预测模型
  • SpringMVC问题
  • 【Linux】Linux的常用基本指令
  • 气候变化和人类活动对中国植被固碳的贡献量化数据月度合成产品
  • 定位鼠标悬浮才出现的元素
  • 【css/vue】使用css变量,在同一个页面根据不同情况改变字号等样式
  • 在springboot中实现WebSocket协议通信
  • 云原生Docker系列 | Docker私有镜像仓库公有镜像仓库使用
  • 用于 syslog 收集的协议:TCP、UDP、RELP
  • OpenAI创始人山姆·阿尔特曼重返公司;LLM持续学习
  • Ant Design Pro生产环境部署
  • Altium Designer学习笔记10
  • ubuntu cutecom串口调试工具使用方法(图形界面)
  • flink 1.17.1的pom.xml模板
  • MySql的数据类型和隐式转换
  • 【开源】基于JAVA的在线课程教学系统
  • 【Linux】权限理解【文件权限以及目录权限详解、以及umsk程序掩码知识详解】
  • Leetcode—1410.HTML实体解析器【中等】
  • golang指针学习
  • c语言:用迭代法解决递归问题
  • 服务器数据恢复—OCFS2下raid5磁盘损坏导致阵列崩溃的数据恢复案例