微软等面试100题筛选答案-25-求最长连续数字子串

来源:互联网 发布:淘宝主图素材怎么制作 编辑:程序博客网 时间:2024/05/19 02:28
//写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)//功能://在字符串中找出连续最长的数字串,并把这个串的长度返回,//并把这个最长数字串付给其中一个函数参数outputstr所指内存。//例如:"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回9,//outputstr所指的值为123456789public class Problem25 {static public void print(Object o){System.out.println(o);}static int continumax(char[] outputstr,char[] intputstr){int i = 0;char cOutputStrtemp[] = new char[1000];int Size = 0;int tempSize = 0;int st = 0;for (; i<intputstr.length;i++){if (intputstr[i] >= '0' && intputstr[i] <= '9'){cOutputStrtemp[tempSize++] = intputstr[i];}else{if (tempSize > Size){cOutputStrtemp = new char[1000];Size = tempSize;tempSize = 0;st = i - Size;}}}if (tempSize > Size){//最后一位可能是数字cOutputStrtemp = new char[1000];Size = tempSize;tempSize = 0;st = i - Size;}for (i = 0; i<Size; i++){outputstr[i] = intputstr[st++];//print(outputstr[i]);}return Size;}public static void main(String args[]){String intput = "asda12315asd1a2s5454545";char output[] = new char[1000];int size = continumax(output,intput.toCharArray());print(size);for (int i = 0; i<size; i++){print(output[i]);}}}

原创粉丝点击