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

Java | Leetcode Java题解之第8题字符串转换整数atoi

题目:

题解:

class Solution {public int myAtoi(String str) {Automaton automaton = new Automaton();int length = str.length();for (int i = 0; i < length; ++i) {automaton.get(str.charAt(i));}return (int) (automaton.sign * automaton.ans);}
}class Automaton {public int sign = 1;public long ans = 0;private String state = "start";private Map<String, String[]> table = new HashMap<String, String[]>() {{put("start", new String[]{"start", "signed", "in_number", "end"});put("signed", new String[]{"end", "end", "in_number", "end"});put("in_number", new String[]{"end", "end", "in_number", "end"});put("end", new String[]{"end", "end", "end", "end"});}};public void get(char c) {state = table.get(state)[get_col(c)];if ("in_number".equals(state)) {ans = ans * 10 + c - '0';ans = sign == 1 ? Math.min(ans, (long) Integer.MAX_VALUE) : Math.min(ans, -(long) Integer.MIN_VALUE);} else if ("signed".equals(state)) {sign = c == '+' ? 1 : -1;}}private int get_col(char c) {if (c == ' ') {return 0;}if (c == '+' || c == '-') {return 1;}if (Character.isDigit(c)) {return 2;}return 3;}
}

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

相关文章:

  • BL200耦合器数据采集模块
  • 基于Uni-app的体育场馆预约系统的设计与实现
  • 1.Spring Boot框架整合
  • 如何在 Debian VPS 上添加、删除和授予用户 sudo 权限
  • openlayers 入门教程(九):overlay 篇
  • 基于Python的高考志愿辅助填报系统
  • 使用CMake搭建简单的Qt程序
  • Qt + VS2017 创建一个简单的图片加载应用程序
  • Linux文件搜索工具(gnome-search-tool)
  • c++20协程详解(三)
  • LLM--提示词Propmt的概念、作用及如何设计提示词
  • 59 使用 uqrcodejs 生成二维码
  • Leetcode 3097. Shortest Subarray With OR at Least K II
  • 算法系列--递归,回溯,剪枝的综合应用(2)
  • Docker搭建LNMP环境实战(09):安装mariadb
  • 基于Python的微博舆论分析,微博评论情感分析可视化系统,附源码
  • Flutter iOS上架指南
  • 实操:driver.js 实现产品导览、亮点、上下文帮助
  • 【JavaWeb】Day29.SpringBootWeb请求响应——请求(二)
  • asf是什么格式的文件?用手机怎么打开?
  • picGo图床搭建gitee和smms(建议使用)
  • LeetCode | 数组 | 二分查找 | 35.搜索插入位置【C++】
  • Linux 给网卡配置ip
  • 【C语言】翻译环境与运行环境
  • ubuntu20.04执行sudo apt-get update失败的解决方法
  • 接口调用成功后端却一直返回404
  • 【Vmware】 debian 12 安装教程
  • YooAssets 使用相关
  • 精准扶贫管理系统|基于Springboot的精准扶贫管理系统设计与实现(源码+数据库+文档)
  • Flutter与iOS和Android原生页面交互