华为OJ训练之0005-161228-找出连续最长数字串

来源:互联网 发布:淘宝销售软件下载 编辑:程序博客网 时间:2024/06/16 03:24

题目

输入一个字符串。
输出
输出字符串中最长的数字字符串和它的长度。
如果数字字符串为空,则只输出0
如 input: dadfsaf output:0
样例输入 abcd12345ed125ss123058789
样例输出 123058789,9

通过 得分100

=================================================================

import java.util.Scanner;//输入一个字符串。//输出    //输出字符串中最长的数字字符串和它的长度。//如果数字字符串为空,则只输出0//如 input: dadfsaf  output:0//样例输入  abcd12345ed125ss123058789//样例输出  123058789,9public class oj005 {    public String str;    public oj005(String str) {        this.str=str;    }    //获得最长的数字串的数字个数    public int getLongestCount()    {        int max=0;        int n=0;        for(int i=0;i<str.length();i++)        {            if(str.charAt(i)>='0'&&str.charAt(i)<='9') {n++;}   //是数字累加            else{n=0;}//不是数字清零            if(n>max)            {                max=n;            }        }        //System.out.print(max);        return max;    }    public void findLongestNumber()    {        int max=getLongestCount();//获取最大个数        if(max==0)         {            System.out.print(0);        }        else        {            int n=0;            for(int i=0;i<str.length();i++)            {                if(str.charAt(i)>='0'&&str.charAt(i)<='9') {n++;}                else{n=0;}                if(n==max)  //找到等于最大个数的数字串末尾                {                    System.out.print(str.substring(i-max+1, i+1)); //截取此数字串并输出                }            }            System.out.print(","+max);        }    }    public static void main(String[] args) {        Scanner scanner=new Scanner(System.in);        new oj005(scanner.nextLine()).findLongestNumber();    }}
0 0
原创粉丝点击