面试:字符串: 字符串转换为10进制数
2016-06-09 19:04
253 查看
题目
实现atoi函数,将字符串转为十进制数算法
照着要求写代码,可以总结如下:1. 字串为空或者全是空格,返回0;
2. 字串的前缀空格需要忽略掉;
3. 忽略掉前缀空格后,遇到的第一个字符,如果是‘+’或‘-’号,继续往后读;如果是数字,则开始处理数字;如果不是前面的2种,返回0;
4. 处理数字的过程中,如果之后的字符非数字,就停止转换,返回当前值;
5. 在上述处理过程中,如果转换出的值超出了int型的范围,就返回int的最大值或最小值。
import java.util.*; class Solution { public int atoi(String str) { if(str==null || str.length()==0) return 0; boolean isNeg=false; str=str.trim(); //获取整数符号 int p=0; if(str.charAt(p)== '-'){ isNeg=true; p++; }else if(str.charAt(p)=='+'){ isNeg=false; p++; } //把字符转换为整数 int num=0; char c; while(p<str.length()){ c=str.charAt(p); if(c<'0'||c>'9') break; //判断是否溢出 if((num==214748364 && (c-'0')>7)||(num>214748364)){ return (!isNeg) ? Integer.MAX_VALUE:Integer.MIN_VALUE; } num=10*num+(c-'0'); ++p; } return (!isNeg)? num:-num; } };
//trim函数 http://www.tuicool.com/articles/byE3Qb[/code]
相关文章推荐
- 海量数据处理面试题方法总结
- java 数据类型,运算符 分支语句 面试知识点总结与习题
- mark[一个32岁入门的70后程序员给我的启示]
- php程序员经验
- 那些不能遗忘的知识点回顾——操作系统系列(笔试面试高频题)
- 来自投资银行的20个Java面试题--转自码农网
- 阿里面试题总结
- 关于一道简单的Java 基础面试题的剖析: short s1=1;s1 = s1 +1会报错吗?
- 谷歌2014面试题 Problem E. Spaceship Defence(spfa,哈希)
- 一个32岁入门的70后程序员给我的启示
- 一个32岁入门的70后程序员给我的启示
- 作为Java程序员这些都不知道那就真的OUT了!
- 一个32岁入门的70后程序员给我的启示(转)
- 浅谈HashMap与HashTable
- Android面试题目(1-2-3--7)
- Servlet & JSP 面试题
- iOS面试
- Android 面试题总结之Android 进阶(一)
- 最近面试经常被问到一个问题StringBuffer跟StringBuilder
- java方面面试题