zoukankan      html  css  js  c++  java
  • leetcoede 8 字符串转换整数

     1 class At{
     2     string state="start";
     3     unordered_map<string,vector<string>>table={
     4         {"start",{"start","signed","in_number","end"}},
     5         {"in_number",{"end","end","in_number","end"}},
     6         {"signed",{"end","end","in_number","end"}},
     7         {"end",{"end","end","end","end"}}
     8     };//状态转换图
     9     int get_c(char c){
    10         if(c==' '){
    11             return 0;
    12         }else if(c=='+'||c=='-'){
    13             return 1;
    14         }else if(c>='0'&&c<='9'){
    15             return 2;
    16         }
    17         return 3;
    18     }//分别对应空格,加减,数字,其他
    19 public:
    20     int sign=1;
    21     long long ans=0;
    22     void get(char c){
    23         state=table[state][get_c(c)];
    24         if(state=="signed"){
    25             sign=c=='+'? 1:-1;
    26         }else if(state=="in_number"){
    27             ans=ans*10+c-'0';
    28             ans=sign==1?min(ans,(long long)INT_MAX):min(ans,-(long long)INT_MIN);//注意点INT_MAX!=-INT_MIN
    29         }
    30     }
    31 };
    32 class Solution {
    33 public:
    34     int myAtoi(string str) {
    35         At at;
    36         for(auto x:str){
    37             at.get(x);
    38         }
    39         return at.sign*at.ans;
    40     }
    41 };
  • 相关阅读:
    SpringMVC截图版
    MySQL
    Mybatis-Spring
    Spring
    get
    log
    SpringBoot
    Mybatis和spingboot整合
    学习笔记-英语
    PartialView+$.reload()局部刷新
  • 原文地址:https://www.cnblogs.com/greenofyu/p/13154895.html
Copyright © 2011-2022 走看看