《牛客网》——华为机试在线训练——找最长连续数字串

华为笔试题——Python 最长数字字符串 题目:给定一个字符串,输出字符串中最长的数字串,并输出该数字串的长度。 题目描述: 在一个字符串中找出连续最长的数字串,并把这个串的长度返回; PS:(1)若存在长度相同的连续数字串,返回最后一个连续数字串。 (2)若没有数字,则返回空字符串(“”) 输入描述: 一个字符串 输出描述: 输出最长的数字串,输出最长数字串个数(中间用逗号隔开) -----------... 阅读详情

例如输入:abcd123.4567.890.123

输出:123.4567.890

“.”可以作为连接符连接两个数字,但是要求"."两边必须都是数字。

面试时遇到的题,因为忽略了对‘0’的处理,所以挂了。

#include<iostream>
#include<stdio.h>

#define MAX_SIZE 0x500

bool IsDotCorrect(char*szInput, int i, int nLastCmpPos, int nLen)//Check if it's a correct dot.
{
    if (nLastCmpPos < 0)
    {
        return false;
    }

    if ((i - 1 >= 0 && i + 1 <= nLen - 1 && (szInput[i - 1] >= '0' && szInput[i - 1] <= '9') && (szInput[i + 1] >= '0' && szInput[i + 1] <= '9')) && ((szInput[i + 1] - szInput[nLastCmpPos]) == 1 && szInput[nLastCmpPos] != '0'))
    {
        return true;
    }

    return false;
}
int main()
{
    char szInput[MAX_SIZE] = { 0 };
    gets_s(szInput, MAX_SIZE);

    int nLen = strlen(szInput);
    int nCount = 0;
    int nCountPos = 0;
    bool bIsCount = false;
    int nLastCmpPos = -1;
    int nCountBak = 0;
    int nCountPosBak = 0;

    for (int i = 0; i < nLen; i++)
    {
        if (!bIsCount)//Is Count Start
        {
            nCountPos = i;
        }

        if ((szInput[i] >= '0' && szInput[i] <= '9') || (szInput[i] == '.' && IsDotCorrect(szInput, i, nLastCmpPos, nLen)))//correct char
        {
            bIsCount = true;
            if (szInput[i] == '.')//correct dot ++
            {
                nCount++;
            }
            else
            {
                if (i - 1 >= 0)//if it's first correct char, no need to compare
                {
                    if (nCount == 0) //first num in this loop ,no need to compare
                    {
                        nCount++;
                    }
                    else
                    {
                        if (((szInput[i] - szInput[nLastCmpPos]) == 1) && szInput[nLastCmpPos] != '0')
                        {
                            nCount++;
                        }
                        else if (szInput[i] == '0' && szInput[nLastCmpPos] == '9')
                        {
                            nCount++;
                        }
                        else
                        {
                            bIsCount = false;
                        }

                        /*if (szInput[i] == '0' && szInput[nLastCmpPos] == '9')
                        {
                        nCount++;
                        }*/
                        
                    }
                }
                else//first num ++
                {
                    nCount++;
                }
                nLastCmpPos = i;
            }

            if (!bIsCount)//Count start
            {
                bIsCount = false;//Count again

                if (nCountBak <= nCount)
                {
                    nCountBak = nCount;
                    nCountPosBak = nCountPos;
                }

                nCountPos = 0;
                nCount = 0;
                nLastCmpPos = 0;
            }
        }
        else//incorrect char
        {
            bIsCount = false;//Count again

            if (nCountBak <= nCount)
            {
                nCountBak = nCount;
                nCountPosBak = nCountPos;
            }

            nCountPos = 0;
            nCount = 0;
            nLastCmpPos = 0;
        }
    }

    if (nCountBak <= nCount)
    {
        nCountBak = nCount;
        nCountPosBak = nCountPos;
    }
    //abcd123.4567.890.123
    //b12.34.12
    for (int i = 0; i < nCountBak; i++)
    {
        printf("%c", *(szInput + nCountPosBak + i));
    }
    printf("\n");
    system("pause");

}
【华为OJ】【在字符串中找出连续最长的数字串】 题目描述 请一个在字符串中找出连续最长的数字串,并把这个串的长度返回;如果存在长度相同的连续数字串,返回最后一个连续数字串; 注意:数字串只需要是数字组成的就可以,并不要求顺序,比如数字串“1234”的长度就小于数字串“1359055”,如果没有数字,则返回空字符串(“”)而不是NULL! 样例输入 abcd12345ed125ss123058789 abcd12345ss54761 ... 阅读详情

相关推荐

【华为机试真题 JAVA】最长连续的数字串-200

请在一个字符串中找连续最长的数字串,并返回这个数字串。 如果存在长度相同的连续的数字串,则返回最后一个。如果没有符合条件的字符串,则返回空字符串“”。

weixin_52894047的博客 518

就因为这三个知识点,我彻底学废了”正则表达式“

前言 曾经我一度对正则表达式有种恐惧和厌恶感,为啥?因为总感觉这玩意很难,很枯燥,看到别人写出贼牛逼的正则,我想啥时候我能像他们一样优秀。直到我看到了这三个知识点。。。 只需要花10分钟时间,你可以收获 正则表达式中的位置匹配原理与知识 正则表达式中的字符串匹配原理与知识 正则表达式中的括号的妙用 14个常见正则表达式解析帮助理解知识点 相信我,看完这篇文章,对于工作中90%以上的正则问题你都能找到解决思路和方案。 相信我,看完这篇文章,对于工作中90%以上的正则问题你都能找到解决思路和方

SharingOfficer的博客 1674

上下文学习的统计物理视角:能量景观与泛化能力的深度解析

本文从统计物理视角探讨了上下文学习(ICL)的机制,提出了能量景观理论框架。主要内容包括: 理论框架:将ICL建模为能量景观的动态调整过程,其中上下文示例作为能量扰动器,通过修改模型内部的高维能量地形来引导预测。 关键发现: 基础能量函数E₀(x)反映预训练数据统计规律 上下文示例通过添加扰动项ΔE(x)重塑能量景观 景观拓扑结构(如宽谷底对应良好泛化能力)决定模型表现 实验验证:提供了可复现的Python代码实现,通过可视化2D/3D能量景观展示上下文示例如何改变模型行为模式。 核心洞见:ICL的泛化能力

博客 748

javascript 手机号间隔显示 123 4567 8910

// 手机号分隔显示 let tel = this.data.tel_value // 原始手机号 let len = tel_value.length // 原始手机号的长度 let mobile = '' for (var i = 0; i < len; i++) { if (i =...

weixin_30900589的博客 380

最长连续子序列

已支持(Java & JS & Python & C & C++),实现:双指针 || 前缀和

优快云 6216

【牛客网华为机试】HJ92 在字符串中找出连续最长的数字串

题目 描述 输入一个字符串,返回其最长的数字子串,以及其长度。若有多个最长的数字子串,则将它们全部输出(按原字符串的相对位置) 本题含有多组样例输入。 输入描述: 输入一个字符串。1<=len(字符串)<=200 输出描述: 输出字符串中最长的数字字符串和它的长度,中间用逗号间隔。如果有相同长度的串,则要一块儿输出(中间不要输出空格)。 示例1 输入: abcd12345ed125ss123058789 a8a72a6a5yy98y65ee1r2 复制输出: 1230

202xxx的博客 404

mysql 123 456_如何通过一个被分割的值查询,如在vb.net的mysql中的123-456-789?

我的问题是,当我通过一个通常的ID进行查询时,如没有分段数字= 1234567890,它很好地工作。但我需要通过某种分段值或ID查询= 123-4567-890,当我尝试123-4567-890这个ID它不查询任何在MySQL中,但在数据库中这123-4567-890 ID存在。那么在VB.NET中,通过mysql中的分段值来搜索可能的解决方案是什么?以下是我在vb中尝试的代码公共小学生()tex...

weixin_36400833的博客 262

半导体制造技术导论(第二版)萧宏 第五章集成电路加热工艺答案

第二次退火是在较高温度下进行,并将电阻系数较高的c49碳化硅转变为电阻系数较低的c54碳。水平式高温炉加热、垂直式高温炉加热(即传统的管式炉加热)、快速加热工艺RTP、激光镭射。8. 集成电路芯片制造过程中,会使用垫底氧化层、阻挡氧化层、栅氧氧化层、屏蔽氧化层和全。氧化是最重要的加热过程之一,是一种添加工艺,将氧气加入到硅晶圆后,在晶圆表面形成二氧。为了满足元器件性能的要求,必须利用退火工艺将晶格的损伤修复,使其恢复单晶结构并激活掺。工艺氮气气流下将晶舟推入炉管,升高温度,稳定温度;

goal_achieving的博客 1864

华为机试HJ92:在字符串中找出连续最长的数字串

C++实现——在字符串中找出连续最长的数字串

翟天保的博客 1万+

环境科研人必备:手把手教你用EPISuite 4.1批量预测化合物毒性(附ECOSAR实战)

本文详细介绍了EPISuite 4.1在环境毒理学研究中的应用,重点解析了ECOSAR模块的化合物毒性预测技术。通过批量处理实战和科研案例,帮助环境科研人员快速评估化学物质对水生生态系统的风险,提升工作效率。文章还涵盖了EPISuite核心模块的功能分类及ECOSAR模型的技术原理与算法特点。

weixin_28738165的博客 543

尝试使用CubeMX做stm32开发之九:SYS配置

参考《STM32中文参考手册_V10》,研究CubeMX中有关SYS的配置

Forster-C的博客 9421

华为机试在线训练-牛客网(38)在字符串中找出连续最长的数字串

题目描述 样例输出 输出123058789,函数返回值9 输出54761,函数返回值5   接口说明 函数原型:    unsignedint Continumax(char** pOutputstr,  char* intputstr) 输入参数:    char* intputstr  输入字符串; 输出参数:    char** 

Ctrlturtle的博客 1767

vue3的面试题

vue3的面试题

jiang7701037的博客 6267

华为OD Python机试满分实战指南:OJ环境适配与工程化编码

华为OD机试B卷并非单纯考察算法能力,而是一场面向真实生产环境的Python工程化编码能力测试。其核心在于理解在线判题系统(OJ)的底层运行机制——包括输入流单次读取、内存硬限制256MB、Python 3.9.16定制环境、禁止动态执行及递归深度锁定等隐性约束。在此前提下,‘算法最优’常让位于‘执行稳定’:例如放弃摩尔投票法改用字典统计,规避输入缓冲区截断风险而强制使用sys.stdin.readline(),或为避免哈希顺序不确定性改用数组索引替代字典遍历。这些实践直指华为OD高频考点:Python O

weixin_34194359的博客 299

【Android逆向工程】第18章:Ollvm 混淆与对抗

本章介绍了Ollvm混淆技术及其对抗方法。Ollvm是基于LLVM的开源代码混淆工具,主要实现控制流平坦化、虚假控制流和指令替换三种混淆技术。控制流平坦化通过状态变量和switch-case结构隐藏真实控制流,将原本清晰的逻辑拆分为多个状态块。混淆后的代码在静态分析中难以理解,但可通过动态追踪执行路径、符号执行等方法来还原原始逻辑。本章还提供了混淆代码示例和对抗策略,帮助理解Ollvm的工作原理及其防御方法。

w987333120的博客 213

用「OpenClaw」打造新媒体运营神器:小红书/公众号全自动选题→创作→排版→发布全流程

对于新媒体运营的从业者来说,AI不是要取代运营人员,而是把他们从繁琐的重复劳动中解放出来,专注于更核心的内容策略、用户运营、品牌建设,这才是AI在传统行业落地的真正价值。这是最终输出可发布内容的核心智能体,我们通过「OpenClaw」的Prompt工程,结合不同平台的排版规范,实现了一键生成符合要求的排版,完全替代人工重复劳动。这套系统的落地,不是技术的炫技,而是真正用AI解决了新媒体运营的核心痛点:用自动化替代重复的人工劳动,用数据决策替代经验主义,用全闭环执行替代纸上谈兵的建议。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 198

java求出最长平台的长度,华为机试题目-多最长子串筛选

问题描述和解决方案```javaimport java.util.Scanner;/*** 最长平台问题-衍生版* * 问题描述:给定一个字符串,有字符连续出现,* 请寻找这些连续字符串中最长的字符串,如果最长的串有多个,* 请输出ascii最小的;* 解决方案:先按照“最长平台”模型,计算出最大长度,* 然后再次遍历字符串,寻找asc码值最大的的子串* *...

weixin_39875516的博客 302

大模型部署指南:SGLang 框架

本文介绍使用 SGLang 框架部署大模型

举世誉之而不加劝,举世非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。 1612

华为-在字符串中找出连续最长是数字串

题目描述: 输入描述: 输入一个字符串。 输出描述: 输出字符串中最长的数字字符串和它的长度,中间用逗号间隔。如果有相同长度的串,则要一块儿输出(中间不间隔),但是长度还是一串的长度,与数字字符串间用逗号间隔。 解题思路: 当遇到数字时,统计连续数字的个数,若大于当前统计到的最大长度,则保存到数组,数组的最后端保存的肯定是最长的。再判断一下倒数第一和倒数第二的长度是否相同,若相同,则按照题述要求输出。 #include<iostream> #include<string> #inc

qq_38977019的博客 381

JEDEC JESD51-14 瞬态双界面测试方法详解

(瞬态双界面测试方法,用于测量具有单路径热流的半导体器件的结到壳热阻 RθJC,包括结到壳顶部 RθJCT 和结到壳底部 RθJCB)。该标准于 2010 年发布(版本 JESD51-14.1),旨在提供一种准确、可重复的瞬态方法来测量功率半导体器件(如 MOSFET、IGBT)的结到壳热阻(RthJC),取代传统的稳态测量方法(如 MIL-STD-883E METHOD 1012.1)。方法,通过比较两种不同热界面材料(TIM)下的瞬态温度响应曲线,提取 RthJC,而无需直接测量壳温(Tc)。

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 609

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

华为2018秋招编程题1:求连续最长数字串及长度

在字符串中找出连续最长的数字串 输入内容: 输入字符串 输出内容: 连续最长的数字串,及长度。(规则:如果输入字符串是空或者没有数字串,也应该返回空字符串“ ”;若有两最长的数字串,返回最后一个) 例如:输入“8789ajdsc8456511123”,输出应该为8456511123,10 输入数据: 8789ajdsc8456511123 输出的数据为: 8...

Chen Rong的博客 743

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

华为机试:求解连续数列

【代码】华为机试:求解连续数列。

OceanStar的博客 342

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

华为机试题92-在字符串中找出连续最长的数字串

描述 输入一个字符串,返回其最长的数字子串,以及其长度。若有多个最长的数字子串,则将它们全部输出(按原字符串的相对位置) 本题含有多组样例输入。 数据范围:字符串长度 1≤n≤200 , 保证每组输入都至少含有一个数字 输入描述: 输入一个字符串。1<=len(字符串)<=200 输出描述: 输出字符串中最长的数字字符串和它的长度,中间用逗号间隔。如果有相同长度的串,则要一块儿输出(中间不要输出空格)。 示例1 输入: abcd12345ed125ss123058789

qq_47307864的博客 823

华为机试题:HJ92 在字符串中找出连续最长的数字串(python)

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

📷 图像处理践行者 | 传统算法 · 深度学习 · 多模态 | 分享实战经验与技术洞见,探索从像素到智能的无限可能。 1376

华为机试题—在字符串中找出连续最长的数字串 c++

/* 题目:在字符串中找出连续最长的数字串,并把这个串的长度返回函数原型: unsignedint Continumax(char** pOutputstr, char* intputstr)输入参数: char* intputstr 输入字符串;输出参数: char** pOutputstr: 连续最长的数字串,如果连续最长的数字串的长度为0, 应该返回空字符串;如果输

小李的专栏 1258

华为机试练习题-在字符串中找出连续最长的数字串

牛客网链接: https://www.nowcoder.com/questionTerminal/bd891093881d4ddf9e56e7cc8416562d 题目描述: #include<iostream> #include<string> using namespace std; int main() { string str; ...

曾经沧海难为水,除却巫山不是云 573
上一篇: 启动vue项目报错 these dependencies were not found:create in ./src/router/modules/md.js
下一篇: npm启动项目npm run serve时报错Error: Cannot find module ‘webpack‘ 问题解决办法
qq_34412985
博客等级 码龄11年 143粉丝 983原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值