1. 程式人生 > 其它 >劍指 Offer 20.表示數值的字串

劍指 Offer 20.表示數值的字串

技術標籤:字串資料結構

劍指 Offer 20.表示數值的字串

在這裡插入圖片描述
記住一套規則!
1、. 判定規則,沒有出現過, 且必須出現在e的前面
2、e判定規則,沒有出現過e 且必須出現過數字,而且e後面必須跟數字
3、 +/- 判定規則,只能出現在第一位或者在e後面

class Solution {
    public boolean isNumber(String s) {
       char[] nums = s.trim().toCharArray();
       boolean numFlag = false; //代表數字是否出現過
       boolean dotFlag =
false; //代表小數是否出現過 boolean eFlag = false; //代表e或者E是否出現過 for(int i = 0; i < nums.length; i++) { if(nums[i] >= '0' && nums[i] <= '9') { numFlag = true; } else if(nums[i] == '.' && !dotFlag && !eFlag) { //小數點沒有出現過,而且要在e之前
dotFlag = true; } else if((nums[i] == 'e' || nums[i] == 'E') && !eFlag && numFlag) { //e判定規則,沒有出現過e 且必須出現過數字 eFlag = true; numFlag = false; //e後面必須要跟數字,否則為false } else if((nums[i] == '+' || nums[i] ==
'-') && (i == 0 || nums[i - 1] == 'e' || nums[i - 1] == 'E')) { } else return false; } return numFlag; } }

時間複雜度 O(n)
空間複雜度 O(n)
在這裡插入圖片描述