首页 > 其他 > 详细

valid bank money number

时间:2014-10-03 08:34:24      阅读:319      评论:0      收藏:0      [点我收藏+]

一直对这种题比较没把握. 没有思路. 

i

1,000,000.22

34,333.999

define valid(String s,boolean last,boolean first)

1.先s.trim();

if string==null or string.length==0 return false;

2.String[] t = s.spite(‘,‘);

得到几组数.  

if(t.length()==1)   valid(t[0],t,t)

else      for()

 

关于splite 函数  1,,  最后 s.length = 1   .  只有1留下了. 

 

 

 

bubuko.com,布布扣

 

需要考虑,, 情况!

最关键的是把所有情况先 写下来。按照图上的划分。考官也会十分清晰.

 

import java.util.ArrayList;
import java.util.List;


public class test {

    /**
     * @param args
     */
    public static Boolean isNum(String s){
        if(s == null || s.length()==0)
            return false;
        s = s.trim();
        
        //check the ,, situation 
        String[] t = s.split(",");
        int comcount = 0;
        for(int i=0;i<t.length;i++){
            if(s.charAt(i)==‘,‘)
                comcount++;
        }
        if(t.length!=comcount+1)
            return false;
        
        if(t.length==1)
            return Valid(t[0], true, true);
        else 
        {
            for(int i=0; i< t.length;i++){
                if(i==0){
                    if(!Valid(t[i], true, true))
                        return false;
                }
                else if(i==(t.length-1)){
                    if(!Valid(t[i],false,true))
                        return false;
                }else{
                    if(!Valid(t[i],false,false))
                        return false;
                }
                
            }
        }
        return true;
    }
//    //effective fractional 100.222222
//    public static boolean Valid2(String s){
//        if(s.length() == 0)
//            return false;
//    }
//    
    public static Boolean Valid(String s, boolean f, boolean l){
        if(f){
        
            
            //+10234  -00234
            if(s.length()>0 && (s.charAt(0)==‘-‘ || s.charAt(0)==‘+‘))
                s = s.substring(1);
            char[] arr = s.toCharArray();
            if(arr.length==0)
                return false;
            int indexDot = s.indexOf(".");
            if(indexDot ==-1){
                //23     333
                if(s.length()>3)
                    return false;
            }else{
                if(indexDot>3)
                    return false;
                for(int i=0;i<indexDot;i++){
                    if(!check(s.charAt(i)))
                        return false;
                }
                if(indexDot==s.length()-1)
                    return false;
                for(int i=indexDot+1;i<s.length();i++){
                    if(!check(s.charAt(i)))
                        return false;
                }
            }
            
        
            return true;
        }
        if(l){
            if(s.length()<3)
                return false;
            for(int i=0;i<3;i++)
            {
                if(!check(s.charAt(i)))
                    return false;
            }    
            if(s.length()>3){
                if(s.charAt(3)!=‘.‘)
                    return false;
                for(int i=4;i<s.length();i++){
                    if(!check(s.charAt(i)))
                        return false;
                }
            }
            return true;
        }
        // middle
        if(s.length()!=3)
                return false;
        char[] arr = s.toCharArray();
        for(int i=0;i<arr.length;i++){
            if(!check(arr[i]))
                    return false;
        }
        
        return true;
    }
    
    static boolean check(char c){
        return (‘0‘ <= c && c <= ‘9‘);
    }
    
    public static void main(String[] args) {
        
        String[]t = {",,","100,002",",000.3",
                "+34444","9999.234324","234234",
                "+56.234234","1,000,000,030.21231","-0.3242",
                ".+99","1111.6",",999.3"
                ,"+1,000,987.23444444444"
                };
        for(String c:t)
        System.out.println(isNum(c));
    }

}

 

valid bank money number

原文:http://www.cnblogs.com/leetcode/p/4004705.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!