题解 | #在字符串中找出连续最长的数字串#

在字符串中找出连续最长的数字串

https://www.nowcoder.com/practice/2c81f88ecd5a4cc395b5308a99afbbec?tpId=37&tqId=21315&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3Fpage%3D2%26pageSize%3D50%26search%3D%26tpId%3D37%26type%3D37&difficulty=undefined&judgeStatus=undefined&tags=&title=

不用正则表达式的方法,快慢指针遍历法

import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextLine()) {
            String str = sc.nextLine();
            int j=0, strLength = 0;
            ArrayList<String> list = new ArrayList<String>();//结果集
            for (int i = 0 ; i < str.length(); i++) {
                for (j = i; j < str.length(); j++) {
                    if (Character.isDigit(str.charAt(j)))
                        break;
                }			//这个循环找到数字开始的位置
                i = j;
                for (j = i; j < str.length(); j++) {
                    if (!Character.isDigit(str.charAt(j)))
                        break;
                }			//这个循环找到数字结束的位置
                if(strLength < (j - i)){
                    strLength=j-i;
                    list.clear();
                    list.add(str.substring(i, j));
                }			//有更长的数字串则清空list再加入,没有则直接加入
                else if(strLength == (j - i))
                    list.add(str.substring(i, j));
                i = j;
            }
            System.out.println(arrListToString(list) + "," + strLength);
        }
    }
    public static String arrListToString(ArrayList<String> list){
        String str="";
        for(String s:list){
            str+=s;
        }
        return str;
    }
}

全部评论

相关推荐

joe2333:怀念以前大家拿华为当保底的日子
点赞 评论 收藏
分享
10-15 15:00
潍坊学院 golang
跨考小白:这又不是官方
投递拼多多集团-PDD等公司10个岗位
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务