Leetcode 65. Valid Number

来源:互联网 发布:通达信分时均价线源码 编辑:程序博客网 时间:2024/06/07 18:07

题目链接 : Leetcode 65. Valid Number


今天状态不好。。。


import java.util.ArrayList;import java.util.List;public class Solution {public static void main(String[] args){ String s = "96 e5";s=s.trim();Solution k = new Solution();k.isNumber(s);}private List<String> split(String s,Character e){List<String> res = new ArrayList<String>();//int count = 0;int pre = -1;for(int i=0;i<s.length();i++){if(i==s.length()-1){if(s.charAt(s.length()-1)==e){res.add("");}else if(pre!=-1){String spl = s.substring(pre+1, i+1);res.add(spl);}}if(s.charAt(i)==e){String spl = "";if(pre+1<=i){spl = s.substring(pre+1, i);}res.add(spl);pre = i;//count++;}}return res;}    public boolean isNumber(String s) {s = s.trim();return isNumberi(s);    }private boolean isNumberi(String s) {// TODO Auto-generated method stubif(s.length()==0)  return false;List<String> ssplit = split(s,'e');if(ssplit.size()>2)  return false;if(ssplit.size()==0){if(split(s,'.').size()>2)  return false;for(int i=0;i<s.length();i++){if(s.charAt(i)=='+'||s.charAt(i)=='-'){if(i!=0){return false;}else{int count = 0;if(i-1>=0&&(s.charAt(i-1)>='0'&&s.charAt(i-1)<='9')){count++;}if(i+1<s.length()&&((s.charAt(i+1)>='0'&&s.charAt(i+1)<='9')||s.charAt(i+1)=='.')){count++;}if(count==0){return false;}}}else if(s.charAt(i)=='.'){int count = 0;if(i-1>=0&&s.charAt(i-1)>='0'&&s.charAt(i-1)<='9'){count++;}if(i+1<s.length()&&s.charAt(i+1)>='0'&&s.charAt(i+1)<='9'){count++;}if(count==0){return false;}}else if(s.charAt(i)>='0'&&s.charAt(i)<='9'){continue;}else{return false;}}return true;}int c  =0;//boolean flag = true;for(String ss:ssplit){//flag = flag&isNumber(ss);c++;if(c==1){if(!isNumberi(ss)){return false;}}else{if(!isInt(ss)){return false;}}}return true;}private boolean isInt(String s) {// TODO Auto-generated method stubif(s.length()==0)  return false;List<String> ssplit = split(s,'e');if(ssplit.size()==0){//if(split(s,'.').size()>=2)  return false;for(int i=0;i<s.length();i++){if(s.charAt(i)=='+'||s.charAt(i)=='-'){if(i!=0){return false;}else{int count = 0;if(i-1>=0&&s.charAt(i-1)>='0'&&s.charAt(i-1)<='9'){count++;}if(i+1<s.length()&&s.charAt(i+1)>='0'&&s.charAt(i+1)<='9'){count++;}if(count==0){return false;}}}else if(s.charAt(i)=='.'){return false;}else if(s.charAt(i)>='0'&&s.charAt(i)<='9'){continue;}else{return false;}}return true;}//int c  =0;//boolean flag = true;for(String ss:ssplit){if(!isInt(ss)){return false;}}return true;}}



分而治之的策略

0 0
原创粉丝点击