华为OD机试真题 Java 实现【非严格递增连续数字序列】【2022Q4 100分】

news/2024/11/30 18:52:13/

在这里插入图片描述

一、题目描述

输入一个字符串仅包含大小写字母和数字,求字符串中包含的最长的非严格递增连续数字序列的长度,比如122889属于非严格递增连续数字序列。

二、输入描述

输入一个字符串仅包含大小写字母和数字,输入的字符串最大不超过255个字符。

三、输出描述

最长的非严格递增连续数字序列的长度。

四、解题思路

题目要求找出字符串中最长的非严格递增连续数字序列的长度。非严格递增连续数字序列是指数字序列中的数字按照非严格递增(可以相等)的顺序连续出现。

算法流程:

  1. 读取输入的字符串 str;
  2. 如果字符串的长度为1且该字符为数字,则直接输出1,并结束程序;
  3. 初始化布尔变量 flag 为 false,表示字符串中是否包含数字;
  4. 将字符串转换为字符数组 c,获取字符串的长度 size;
  5. 初始化变量 max 和 length 为 1,分别表示当前的最大长度和当前遍历的连续数字序列长度;
  6. 遍历字符数组 c,从索引 1 开始。
    • 如果当前字符或前一个字符是数字,则将 flag 设置为 true;
    • 如果前一个字符不大于当前字符且当前字符是数字,则说明当前字符属于连续数字序列,将 length 自增。
      • 如果 length 大于 max,则更新 max 的值为 length;
      • 继续下一次循环。
    • 如果不满足上述条件,说明当前字符不属于连续数字序列,将 length 重置为 1。
  7. 判断 flag 的值,如果为 true,说明字符串中包含数字,输出 max,表示最长的非严格递增连续数字序列的长度;
  8. 如果 flag 的值为 false,说明字符串中不包含数字,输出 0;
  9. 结束程序。

五、Java算法源码

public static void main(String[] args) {Scanner in = new Scanner(System.in);while (in.hasNext()) {String str = in.nextLine();// 如果字符串的长度为1且该字符为数字,则直接输出1,并结束程序if (str.length()==1&&str.charAt(0)>='0'&&str.charAt(0)<='9'){System.out.println(1);continue;}// 字符串中是否包含数字boolean flag = false;// 将字符串转换为字符数组 cchar[] c = str.toCharArray();// 获取字符串的长度 sizeint size = str.length();// 当前的最大长度int max = 1;// 当前遍历的连续数字序列长度int length = 1;for (int i = 1; i < size ; i++) {// 如果当前字符或前一个字符是数字,则将 flag 设置为 trueif ((c[i - 1] >= '0' && c[i - 1] <= '9') || (c[i] >= '0' && c[i] <= '9')) {flag = true;}// 如果前一个字符不大于当前字符且当前字符是数字,则说明当前字符属于连续数字序列,将 length 自增。if (c[i-1] <= c[i]&&c[i-1]>='0'&&c[i]<='9') {length++;// 如果 length 大于 max,则更新 max 的值为 lengthif (length > max) {max = length;}continue;} else {// 如果不满足上述条件,说明当前字符不属于连续数字序列,将 length 重置为 1length = 1;}}if (flag) {// 最长的非严格递增连续数字序列的长度System.out.println(max);} else {System.out.println(0);}}
}

六、效果展示

在这里插入图片描述


🏆本文收录于,华为OD机试(JAVA)真题(A卷+B卷)

每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述


http://www.ppmy.cn/news/382730.html

相关文章

展锐charger dts配置值介绍

1、battery节点信息&#xff1a; bat: battery { compatible "simple-battery"; charge-full-design-microamp-hours ; //电池容量μAh charge-term-current-microamp ; //截止充电电流μA constant_charge_voltage_max_microvolt ; //截止充电电压μV factory-…

命名管道:FIFO

至此&#xff0c;我们还只能在相关的程序之间传递数据&#xff0c;即这些程序是由一个共同的祖先进程启动的。但如果我们想在不相关的进程之间交换数据&#xff0c;这还不是很方便。 我们可以用FIFO文件来完成这项工作&#xff0c;它通常也被称为命名管道&#xff08;named pip…

在家如何复刻影院级震撼视听体验?|Fidelio 招牌B97有料测评

如今我们的电视产品越来越智能、画质越来越清晰&#xff0c;机身也越来越窄&#xff0c;但是随之带来的就是音质的下降&#xff0c;对于追求音质的消费者来说&#xff0c;选择一套合理的家庭影院系统可以大大提升观影效果。但是传统家庭影院动辄大几万的价格、大体积和复杂的布…

【FLASH存储器系列十八】固态硬盘FTL磨损平衡

&#x1f449;个人主页&#xff1a; highman110 &#x1f449;作者简介&#xff1a;一名硬件工程师&#xff0c;持续学习&#xff0c;不断记录&#xff0c;保持思考&#xff0c;输出干货内容 今天继续分享FTL的另一项功能&#xff1a;磨损平衡。 我们知道nand flash的擦写次数是…

蜂鸣器制作“ 孤勇者 ”音乐

文章目录 前言一、蜂鸣器1. 简介2. 无源蜂鸣器工作原理3. 仿真电路 二、孤勇者乐谱三、程序设计总结 前言 本节为利用蜂鸣器通过调制不同音频&#xff0c;制作出“孤勇者”音乐。 一、蜂鸣器 1. 简介 蜂鸣器是一种一体化结构的电子讯响器&#xff0c;采用直流电压供电&…

zeppelin(齐柏林)的配置和使用

查看zeppelin的端口号 [rootlocalhost ~]# vi /usr/hdp/share/hst/activity-explorer/conf/zeppelin-site.xml <property> <name>zeppelin.server.port</name> <value>9060</value> <description>Server port.</description&g…

柏林噪声与MC

柏林噪声与MC 引入 暑假入门Unity后打算做一个类MC的游戏。大家都知道&#xff0c;MC地形几乎是“无限”生成的(实际上有一个特别大的上限值)&#xff0c;人工制作如此庞大的地图必然不现实&#xff0c;内存也无法容纳这么多方块。因此&#xff0c;地形的生成必须得依靠算法实…

雷柏M300G使用体验

1年半前买的鼠标&#xff0c;使用频率比较高&#xff0c;当做工作电脑的鼠标使用的&#xff0c;后来坏了&#xff0c;感觉好像绿灯和蓝灯一直亮&#xff0c;连接电脑没反应&#xff0c;换了电池也没用&#xff0c;反复重启也没用&#xff0c;那个模式切换键也没反应&#xff0c…