zoukankan      html  css  js  c++  java
  • 剑指offer 把字符串转换成整数

    题目描述

    将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。

    输入描述:

    输入一个字符串,包括数字字母符号,可以为空

    输出描述:

    如果是合法的数值表达则返回该数字,否则返回0
    示例1

    输入

    +2147483647
        1a33

    输出

    2147483647
        0

    思路:主要考虑边界条件:

    a、第一个字符是否为'+'或者'-'

    b、空串

    c、判断是否溢出

     1 class Solution {
     2 public:
     3     int StrToInt(string str) {
     4         int len = str.length();
     5         long ans = 0; //用long或者long long吧,因为ans一开始不考虑正负,如果实际上是最小的负数,那么ans一开始计算得到的记过就会溢出
     6         bool positive = true;
     7         for (int i = 0; i < len; i++) {
     8             //只要符合就计入
     9             if (str[i] >= '0' && str[i] <= '9') {
    10                 ans = ans * 10 + (str[i] - '0');
    11             } else { //否则判断是否是第一个字符,并且只有第一个字符是'+'或者'-',才符合条件
    12                 if (i == 0 && (str[i] == '-' || str[i] == '+')) {
    13                     positive = true ? (str[i] == '+') : (str[i] == '-');
    14                 } else {
    15                     return 0;
    16                 }
    17             }
    18         }
    19         if (positive == false) {
    20             ans *= -1;
    21         }
    22         return ans;
    23     }
    24 };
  • 相关阅读:
    如何在markdown隐藏代码块
    html基础
    驻留机制
    字典
    echarts简单使用
    selenium的基本操作
    Excel上传、下载、models 自定义字段、批量执行(可选)
    django之自定义标签(路径url反向解码)
    邮件自动生成发送用例报告
    前台获取后台保存的数据
  • 原文地址:https://www.cnblogs.com/qinduanyinghua/p/10651913.html
Copyright © 2011-2022 走看看