栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

求字符串中最长连续递增的数字子串的长度

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

求字符串中最长连续递增的数字子串的长度

如题,给定一个字符串,求字符串中最长连续递增的数字子串的长度。
字符串全部由小写字母和数字组成。

  • 用例1:1234aa12345ab123456
    结果:6。 ps:最长连续递增的数字子串为123456
  • 用例2:bv1234aa412345ab341234567
    结果:7。 ps:最长连续递增的数字子串为1234567
  • 用例3:54345689bv12345cd2123545454789
    结果:6。 ps:最长连续递增的数字子串为345689

题解:
由上题描述可知,求字符串中最长连续递增的数字子串的长度。
所以可以直接定义一个计数长度的变量和计数最大长度的变量。
然后遍历字符串,如果当前的字符为数字的情况下,前一个字符如果为数字且小于当前数字,则计数长度+1。如果当前的字符为数字的情况下,前一个字符如果为数字且大于等于当前数字(或前一个字符不为数字),则更新计数最大长度且将计数长度重置为1.

完整代码如下:

package com.example.testlib1;

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

public class Main {

    public static void main(String[] args) {
        String testStr1 = "1234aa12345ab123456";
        int len1 = maxLength(testStr1);
        System.out.println("len1:"+len1);

        String testStr2 = "bv1234aa412345ab341234567";
        int len2 = maxLength(testStr2);
        System.out.println("len2:"+len2);

        String testStr3 = "54345689bv12345cd2123545454789";
        int len3 = maxLength(testStr3);
        System.out.println("len3:"+len3);
    }

    public static int maxLength(String testStr) {
        // 将字符串转为字符数组方便遍历 
        char[] arr = testStr.toCharArray();
        // 定义变量,计数最大长度
        int max = 0;
        // 定义变量,计数当前长度
        int len = 0;
        List list = new ArrayList<>();
        // 如果字符数组的第一个元素为数字,则计数+1.  方便后续遍历字符数组时索引从1开始
        if(Character.isDigit(arr[0])) {
            len ++;
        }
		// 遍历字符数组时,索引从1开始,避免i-1小于0的情况。
        for(int i=1;iarr[i-1]) {
                    len++;
                } else {
                    max = Math.max(max, len);
                    len = 1;
                }
            }
        }
        // 遍历完毕后,处理最后一次计数的情况
        if (len != 0) {
            max = Math.max(max, len);
        }
        return max;
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/287167.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号