【面经】外企德科-华为精英研发项目-笔试编程题

2023-11-16

微信搜索:编程笔记本。获取更多干货!
微信搜索:编程笔记本。获取更多干货!

点击上方蓝字关注我,我们一起学编程
欢迎小伙伴们分享、转载、私信、赞赏

今天来看一道“外企德科-华为精英研发项目”的一道笔试编程题。

求满足条件的最长字串的长度

题目描述:

给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串,字符串本身是其最长的子串,子串要求:

  • 只包含 1 个字母(a-z, A-Z),其余必须是数字
  • 字母可以在子串中的任意位置

微信搜索:编程笔记本。获取更多干货!
微信搜索:编程笔记本。获取更多干货!

如果找不到满足要求的子串,如全是字母或全是数字,则返回 -1 。

输入描述:

字符串(只包含数字和字母)。

输出描述:

子串的长度。

示例:

  • 输入:abC124ACb
  • 输出:4
  • 解释:C124124A

分析:

由于符合条件的子串有且仅有一个字母,因此我们可以统计每个字母出现的位置,相间一位的字母的位置决定了其包含的数字数量,这样问题就迎刃而解了。

参考代码:

微信搜索:编程笔记本。获取更多干货!
微信搜索:编程笔记本。获取更多干货!

#include <bits/stdc++.h>
using namespace std;

int main()
{
    string s;    // 出入的字符串
    cin >> s;
    
    int ans = -1;
    vector<int> pos;    // 记录字母的位置
    
    pos.push_back(-1);
    
    for (int i = 0; i < s.size(); ++i) {
        if (isalpha(s[i])) {
            pos.push_back(i);
        }
    }
    
    pos.push_back(s.size());
    
    for (int i = 0; i < pos.size() - 2; ++i) {
        int diff = pos[i + 2] - pos[i];
        
        if (diff > 2) {
            ans = max(ans, diff - 1);
        }
    }
    
    cout << ans << endl;

    return 0;
}

微信搜索:编程笔记本。获取更多干货!
微信搜索:编程笔记本。获取更多干货!

测试一些边界:

jincheng@haofan$ ./a.out
123a
4
jincheng@haofan$ ./a.out
a123
4
jincheng@haofan$ ./a.out
123a123
7
jincheng@haofan$ ./a.out
a123a
4
jincheng@haofan$ ./a.out
aaa1aaa
2
jincheng@haofan$ ./a.out
aaa
-1
jincheng@haofan$ ./a.out
111
-1
jincheng@haofan$ ./a.out 

可以看到,程序基本满足要求。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【面经】外企德科-华为精英研发项目-笔试编程题 的相关文章

  • springCloud整合 Hystrix熔断器(配置)

    springCloud整合 Hystrix熔断器 文章目录 springCloud整合 Hystrix熔断器 前言 一 添加Hystrix依赖 二 properties文件开启熔断器 三 为调用另一个服务的接口添加实现类 前言 在分布式环境
  • Qt Installer Framework使用教程:

    步骤一 下载并安装Qt Installer Framework工具 http download qt io official releases qt installer framework 将安装目录添加到环境变量 如安装D盘时D Qt Q
  • 狂神说 MyBatis 笔记

    这里写目录标题 Mybatis 1 简介 1 1 什么是MyBaits 1 2 持久话 1 3 持久层 1 4 为什么需要Mybatis 2 第一个Mybatis程序 2 1 搭建环境 2 2 创建一个模块 2 3 编写代码 2 4 测试
  • 二分插入排序(c语言)

    一 什么是二分插入排序 二分法插入排序 简称二分排序 是在插入第i个元素时 对前面的0 i 1元素进行折半 先跟他们中间的那个元素比 如果小 则对前半再进行折半 否则对后半进行折半 直到left
  • <02-01-01> Spring IoC容器与Bean介绍(Introduction to the Spring IoC Container and Beans)

    上一篇 02 01 控制反转容器 The IoC Container 本章介绍了Spring 框架对控制反转 Inversion of Control IoC 设计原则的实现 IoC也被称为依赖注入 Dependency Injection
  • SpringBoot配置多个mysql数据源

    当我们在进行数据库分库分表操作是可能会需要到多个数据库 那么我们就需要对多个数据库的数据源进行配置 整理一下 今天在SpringBoot框架下多个数据源的配置过程 两个为例 1 配置数据库信息 在yml配置文件中配置需要的数据库信息 spr
  • 分布式理论基础:CAP和BASE

    CAP定理 分区 在分布式系统中 不同的节点分布在不同的子网络中 由于一些特殊的原因 这些子节点之间出现了网络不通的状态 但他们的内部子网络是正常的 从而导致了整个系统的环境被切分成了若干个孤立的区域 这就是分区 CAP定理 CAP原则又称
  • opencv-python中 boundingRect(cnt)以及cv2.rectangle用法

    转自 http blog csdn net zhangxb35 article details 47275277 矩形边框 Bounding Rectangle 是说 用一个最小的矩形 把找到的形状包起来 还有一个带旋转的矩形 面积会更小
  • 实用常识

    WolframAlpha是开发计算数学应用软件的沃尔夫勒姆 Wolfram 研究公司基于科学计算软件Mathematica开发出的新一代的搜索引擎 试图挑战Google搜索引擎的地位 能根据问题直接给出标准化答案的网站 比如输入一种材料名称
  • iOS开发 多线程的高级应用-信号量semaphore

    在iOS开发的道路上 多线程的重要性不言而喻 大部分我们都停留在基础的使用上面 缺乏高级应用 缺乏提升 是因为我们面对他太少 复杂的事情重复做 复杂的事务基础化 差距就是这样拉开了 言归正传 今天讲讲GCD的高级应用之信号量篇 一 信号量的
  • CMake使用小结

    CMake使用小结 指定本地库的位置 set Qt5 DIR path list APPEND CMAKE PREFIX PATH Qt5 DIR 设置编译输出的路径 set CMAKE ARCHIVE OUTPUT DIRECTORY D
  • 一阶低通滤波

    一阶低通滤波 前言 在使用单片机开发中 常常会用到的外设包括ADC采样 而采样必然会伴随这随机干扰引起的毛刺噪声 对于需要捕捉采样值突变的系统来说尤其需要减小毛刺突变的影响 从硬件电路和软件算法上都能一定程度的减少噪声达到滤波的目的 本文主
  • VSCode配置文件“.vscode/c_cpp_properties.json”不断被覆盖的原因及解决方法

    一 问题现象 昨天 我在用VSCode写一个小算法程序 使用CMake配置文件 CMakeLists txt 进行工程管理 算法测试倒还顺利 但VSCode出现了一个令人恼火的问题 每次重新打开VSCode后 配置文件 vscode c c
  • android 反编译

    使用工具 CSDN上下载地址 apktool 资源文件获取 下载 dex2jar 源码文件获取 下载 jd gui 源码查看 下载 Android反编译整合工具包 最新 下载 官方最新版本下载地址 apktool google code d
  • finetune

    finetune的含义是获取预训练好的网络的部分结构和权重 与自己新增的网络部分一起训练 下面介绍几种finetune的方法 完整代码 https github com toyow learn tensorflow tree master
  • 【Web前端】一文带你吃透HTML(完整篇)

    前端学习路线小总结 基础入门 HTML CSS JavaScript 三大主流框架 VUE REACT Angular 深入学习 小程序 Node jQuery TypeScript 前端工程化 开始前端之旅吧 一 HTML简介 1 什么是
  • 【软件工程】白盒测试:基本路径测试

    基本路径测试是在程序控制流图的基础上 通过分析控制构造的环路复杂性 导出基本可执行的路径集合 从而设计测试用例的方法 步骤 以一段代码为例 1 画出控制流图 void sort int num int t 1 2 int x 0 3 int
  • Adobe Bridge 2024:解锁创意力的数字媒体利器

    在当今数字化的时代 创意工作者们需要处理和管理大量的数字媒体资源 如照片 视频 音频等 为了提高工作效率和创作质量 他们需要一个功能强大 易于使用的工具来组织 浏览和共享这些媒体文件 幸运的是 Adobe Bridge 2024 正好满足了
  • 十大MES系统排行 制造执行系统 生产管理系统榜中榜

    MES系统十大品牌数据由CN10排排榜技术研究部门和CNPP品牌数据研究部门通过资料收集整理 并基于大数据统计及人为根据市场和参数条件变化的分析研究专业测评而得出 是大数据 云计算 数据统计真实客观呈现的结果 更多行业榜单尽在买购网 1 S
  • CentOS7.9设置ntp时间同步

    文章目录 应用场景 基础知识 服务端操作步骤 客户端操作步骤 应用场景 我们公司是做智慧交通的 主要卖交通相关的硬件和软件 硬件包括信号机 雷达 雷视 边缘盒子等 软件包括信控平台 管控平台等 路口前端设备 信号机设备 雷达设备 边缘计算单

随机推荐

  • Flutter安装最详细的教程(Android studio)

    本文假设你已经知道Android开发是什么 且已安装git Android sdk jdk等必要的环境 1 安装flutter插件 2 安装dart 3下载flutter sdk 去flutter官网下载其最新可用的安装包 点击下载 注意
  • 内存数据库SQLite和H2比较

    内存数据库 顾名思义就是将数据放在内存中直接操作的数据库 相对于磁盘 内存的数据读写速度要高出几个数量级 将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能 AD 2013云计算架构师峰会课程资料下载 本文中主要为大家介绍两种内存数
  • STM32学习——端口复用及映射

    1 复用 STM32有很多的内置外设 这些外设的外部引脚都是与GPIO复用的 也就是说 一个GPIO如果可以复用为内置外设的功能引脚 那么当这个GPIO作为内置外设使用的时候 就叫做复用 哪些端口可以复用为什么 这个查表就可以了 2 如何进
  • volatile 关键字 详解,为何不能保证复合操作的原子性

    一直对volatile 有些许的疑惑 就是它既然实时刷新主内存中的值 并且能保证可见 为啥不能保证原子性n 下面分析 使用volatile 关键字修饰共享变量时 变量就会有以下特点 1 变量对其他线程具有可见性 2 禁止进行指令重排 保证了
  • MATLAB如何画三轴图

    MATLAB如何画三轴图 前言 使用MATLAB绘图非常方便 它提供了非常丰富的图形 如 line bar stem等 用户可以直接调用相应的函数 但有时直接使用这些 高级 的函数不能满足我们的绘图要求 比如 如何绘制三Y轴的图形 即一个f
  • docker push 镜像上传至仓库

    目的 docker push chengzy busybox v2 问题 denied requested access to the resource is denied 原因 登录的账户名不匹配 解决 使用 tag 更改镜像名字前缀为
  • 数据库导入导出详解

    1 数据库导入导出 1 传统方式 exp 导出 和 imp 导入 2 数据泵方式 expdp 导出 和 impdp 导入 3 第三方工具 PL sql Developer 2 三种导入导出方式优缺点比较 2 1 exp imp 优点 代码书
  • deepin20.3 的问题

    deepin显示器无法唤醒解决方法 发现系统无法唤醒是因为和nvida驱动有冲突 当直接使用nvidia驱动的显卡作为显示器输入信号源就会出现这个问题 但如果小伙伴又需要使用NVIDIA的显卡运行深度学习程序 可以参考这个办法 安装deep
  • 解决win7下安装Mysql卡在Start service的问题

    由于之前在电脑上安装过MySQL 所以旧的服务器依然存在电脑上 再重新安装时startservice会报错 mysql下载地址http www mysql com downloads mysql 1 打开cmd 键入sc delete my
  • Linux日志误删了怎么办,Linux下误删messages文件的找回方法

    如果有进程正在使用的文件 如果被误删了 可以找回 如果没有进程在使用 就无法找回被误删的文件了 假如 var log messages文件被误删了 1 查询正在使用该文件的进程 root www lsof grep message rsys
  • 报错:selenium.common.exceptions.WebDriverException: Messag‘geckodriver‘ execute

    问题原因 使用pip安装selenium 默认安装的是最新版本的selenium selenium 3 x开始 webdriver firefox webdriver py的 init 中 executable path geckodriv
  • Git——Day3(Github Pages搭建个人网站)

    1 个人站点访问 https github用户名 github io 2 搭建步骤 1 创建个人站点 gt 新建仓库 注 仓库名必须是 用户名 github io 2 在仓库下新建index html的文件即可 注意 1 github pa
  • Python报错socket.gaierror: [Errno 11001] getaddrinfo failed

    1 报错 from scapy all import sr IP ICMP target 192 168 142 129 pkt IP dst target ICMP ans unans sr pkt timeout 1 for s r i
  • GitHub Desktop客户端下载安装,以及上传到服务端

    下载安装地址 https desktop github com 使用教程 https blog csdn net qqw666666 article details 125652869 操作流程 就是不同应用端的交互 做好相关验证即可
  • 应用中间件二、Tomcat单机多实例部署

    Tomcat 常见的几种部署场景 通常 我们在同一台服务器上对 Tomcat 部署需求可以分为以下几种 单实例单应用 单实例多应用 多实例单应用 多实例多应用 实例的概念可以理解为上面说的一个 Tomcat 目录 单实例单应用 比较常用的一
  • Python3.x opencv操作中文文件

    我用的是python3 5 本身用file打开中文文件是没有问题的 但是用opencv就不行 网上看到很多解决版本 可能都是针对python2 x的 没有效果 后来在知乎上看到一个解决方法 测试有效 引用在这里 冯卡门 由于python3字
  • Redis底层数据结构.md

    1 Redis 概述 Redis 数据库里面的每个键值对 key value 都是由对象 object 组成的 数据库键总是一个字符串对象 string object 数据库的值则可以是字符串对象 列表对象 list 哈希对象 hash 集
  • Jmeter对图片验证码的处理

    jmeter对图片验证码的处理 在web端的登录接口经常会有图片验证码的输入 而且每次登录时图片验证码都是随机的 当通过jmeter做接口登录的时候要对图片验证码进行识别出图片中的字段 然后再登录接口中使用 通过jmeter对图片验证码的识
  • ctfshow—萌新—web1

    0x00 前言 CTF 加解密合集 CTF Web合集 0x01 题目 0x02 Write Up 解法1 标准的数字型注入 查列名 http cc3ecc3f 8c42 4624 979e 277a51ea85d2 challenge c
  • 【面经】外企德科-华为精英研发项目-笔试编程题

    微信搜索 编程笔记本 获取更多干货 微信搜索 编程笔记本 获取更多干货 点击上方蓝字关注我 我们一起学编程 欢迎小伙伴们分享 转载 私信 赞赏 今天来看一道 外企德科 华为精英研发项目 的一道笔试编程题 求满足条件的最长字串的长度 题目描述