金融网站建设方案书,网站调研表,wordpress中文标题404,景区网站如何建设文章目录题目描述思路 代码题目描述
呃…比较恶心的一道题#xff0c;需要读好题#xff0c;分完情况再下手有看到dalao用有限状态机来做#xff0c;不过这边还是直接用了我自己的做法
思路 代码
ps#xff1a;这里没有参考题解的写法#xff…
文章目录题目描述思路 代码题目描述
呃…比较恶心的一道题需要读好题分完情况再下手有看到dalao用有限状态机来做不过这边还是直接用了我自己的做法
思路 代码
ps这里没有参考题解的写法用的是方便自己理解的写法所以可能代码有冗余不过复杂度是没问题的s 分为三部分part1 小数 || 整数part2 e/Epart3 整数part23可选新增两个函数isInteger() 整数判断以及 isDecimal() 小数判断先来一个循环找到第一个 e / E 的位置作为 part 的分界点然后对 part1 进行 小数 or 整数判断对 part3 进行整数判断即可注意无论小数、整数都需要有数字元素
class Solution {public boolean isNumber(String s) {// inits s.trim();if(s.length() 0) {return false;}char[] sArr s.toCharArray();// 数值 小数 or 整数 (可选) e or E 整数int eIndex s.length();for(int i 0; i s.length(); i) {if(sArr[i] e || sArr[i] E) {eIndex i;}}// 第一部分为整数 or 小数boolean part1 (isInteger(sArr, 0, eIndex - 1) || isDecimal(sArr, 0, eIndex - 1));// 可选第二部分为整数if(eIndex ! s.length()) {// 后不跟整数的情况if(eIndex s.length() - 1) {return false;}part1 part1 isInteger(sArr, eIndex 1, s.length() - 1);}return part1;}public boolean isInteger(char[] arr, int start, int end) {int numsCount 0;// 符号位处理int index start;if(arr[index] - || arr[index] ) {index;}// 元素处理for(; index end; index) {if(arr[index] 0 || arr[index] 9) {return false;}numsCount;}// 存在数字才算整数return numsCount 0;}public boolean isDecimal(char[] arr, int start, int end) {int index start;if(arr[index] - || arr[index] ) {index;}int pointNums 0, numCount 0;for(; index end; index) {if(arr[index] .) {pointNums;continue;}else if(arr[index] 0 || arr[index] 9) {return false;}numCount;}// 只有一个小数点并且存在数字的情况才是小数return pointNums 1 numCount ! 0;}
}