標籤:手機號碼 驗證手機號 華為機試
我國大陸電訊廠商的手機號碼標準格式為:國家碼+手機號碼,例如:8613912345678。特點如下:
1、 長度13位;
2、 以86的國家碼打頭;
3、 手機號碼的每一位都是數字。
請實現手機號碼合法性判斷的函數要求:
1) 如果手機號碼合法,返回0;
2) 如果手機號碼長度不合法,返回1
3) 如果手機號碼中包含非數位字元,返回2;
4) 如果手機號碼不是以86打頭的,返回3;
【注】除成功的情況外,以上其他合法性判斷的優先順序依次降低。也就是說,如果判斷出長度不合法,直接返回1即可,不需要再做其他合法性判斷。
??樣本
輸入: inMsisdn = “869123456789“
輸出: 1
輸入: inMsisdn = “8813912345678“
輸出: 3
輸入: inMsisdn = “8613912345678“
輸出: 0
c
#include<stdio.h>#include<stdlib.h>#include<assert.h>#include<string.h>#define LENGTH 13int verifyMsisdn(char *inMsisdn){ char *pchar=NULL; char *p=inMsisdn; assert(inMsisdn!=NULL); if(LENGTH==strlen(inMsisdn)) { while(*inMsisdn!=‘\0‘) { if((*inMsisdn>=‘0‘)&&(*inMsisdn<=‘9‘)) //判斷字串全為數字 inMsisdn++; else return 2 ; //return 會跳出被調用函數 } if((‘8‘!=*p)||(*(p+1)!=‘6‘)) return 3; } else return 1; return 0;}void main(){ char pchar[100]; int result; while(gets(pchar)) { result =verifyMsisdn(pchar); printf("result is %d\n",result); }}
java
import java.util.Scanner;import java.util.regex.Matcher;import java.util.regex.Pattern;public class phoneVerify { public int verify(String phoneStr) { if (phoneStr == null) System.exit(0); if (phoneStr.length() == 13) { Pattern pattern = Pattern.compile("[0-9]*"); Matcher isNum = pattern.matcher(phoneStr); if (!isNum.matches()) return 2; if (phoneStr.charAt(0) != ‘8‘ || phoneStr.charAt(1) != ‘6‘) return 3; } else { return 1; } return 0; } public static void main(String[] args) { phoneVerify pv = new phoneVerify(); Scanner s = new Scanner(System.in); while(s.hasNext()){ String str = s.nextLine(); System.out.println(pv.verify(str)); } }}
華為機試—手機號碼驗證