求字符串所有整数最小和 - 华为OD统一考试(C卷)

OD统一考试(C卷)

分值: 100分

题解: Java / Python / C++

alt

题目描述

1.输入字符串s输出s中包含所有整数的最小和,说明:1字符串s只包含a~z,A~Z,+,-,

2.合法的整数包括正整数,一个或者多个0-9组成,如:0,2,3,002,102

3.负整数,负号开头,数字部分由一个或者多个0-9组成,如-2,-012,-23,-00023

输入描述

包含数字的字符串

输出描述

所有整数的最小和

示例1

输入:
bb1234aa输出:
10说明:
1+2+3+4=10

示例2

输入:
bb12-34aa输出:
-31说明:
1+2-34=-31

题解

这道题要求在给定的字符串中找到所有整数并计算它们的和。整数包括正整数和负整数,其中负整数以减号开头,其后由一个或多个0-9组成。

解题思路

  • 遍历字符串,当遇到减号时,构造尽量更小的负数,当遇到数字时,构造尽量更小的正数。
  • 使用一个变量 tot 来累计整数的和。
  • 在遍历过程中,当遇到减号时,需要判断接下来的字符是否是数字,如果是数字则构造负数并减去。
  • 当遇到数字时,构造正数并加到 tot 中。
  • 最终输出 tot

Java

import java.util.Scanner;
/*** @author code5bug*/
public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String s = scanner.next();int n = s.length();long tot = 0L;for (int i = 0; i < n; i++) {if ('-' == s.charAt(i)) { // 尽量构造更小的负数long num = 0L;while (i + 1 < n && Character.isDigit(s.charAt(i + 1))) {num = num * 10 + s.charAt(++i) - '0';}tot -= num;} else if (Character.isDigit(s.charAt(i))) { // 尽量构造更小的正数tot += s.charAt(i) - '0';}}System.out.println(tot);}
}

Python

s = input()  # 输入一个字符串n, tot = len(s), 0i = 0
while i < n:if s[i] == '-':  # 尽量构造更小的负数num = 0i += 1while i < n and s[i].isdigit():num = num * 10 + int(s[i])i += 1tot -= numelif s[i].isdigit():  # 尽量构造更小的正数tot += int(s[i])i += 1print(tot)

C++

以下是将 Java 代码翻译成 Python 的版本,并在关键代码上添加注释:
#include <bits/stdc++.h>using namespace std;int main() {string s;cin >> s;int n = s.size();long long tot = 0LL;for (int i = 0; i < n; i++) {if ('-' == s[i]) { // 尽量构造更小的负数long long num = 0LL;while (i + 1 < n && isdigit(s[i + 1])) {num = num * 10 + s[++i] - '0';}tot -= num;} else if (isdigit(s[i])) { // 尽量构造更小的正数tot += s[i] - '0';}}cout << tot << endl;return 0;
}    

‍❤️‍华为OD机试面试交流群每日真题分享): 加V时备注“华为od加群”

🙏整理题解不易, 如果有帮助到您,请给点个赞 ‍❤️‍ 和收藏 ⭐,让更多的人看到。🙏🙏🙏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/707489.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C 嵌入式系统设计模式 13:中断模式

本书的原著为&#xff1a;《Design Patterns for Embedded Systems in C ——An Embedded Software Engineering Toolkit 》&#xff0c;讲解的是嵌入式系统设计模式&#xff0c;是一本不可多得的好书。 本系列描述我对书中内容的理解。本文章描述访问硬件的设计模式之六&…

跨境电商与支付介绍

1、跨境电商定义和分类&#xff1b; 2、国际贸易清结算&#xff1b; 3、跨境支付&#xff1b; 1、跨境电商定义和分类 跨境电商业务简单说就是指不同国家地域的主体通过电子商务进行交易的一种业务模式。同传统的电商不同&#xff0c;交易双方属于不同的国家。因此&#xff0…

flask知识--01

flask介绍 # python 界的web框架&#xff1a; Django&#xff1a;大而全&#xff0c;使用率较高 &#xff1a;https://github.com/django/django -FastAPI&#xff1a;新项目选择使用它&#xff1a;https://github.com/tiangolo/fastapi -flask&#xff1a;公司一些…

Mysterious-GIF-攻防世界-MISC

题目简介&#xff1a; 下载得到gif文件&#xff0c;十六进制编辑器查看&#xff0c;发现末尾有50 4B 03 04文件头。提取后保存为zip文件。 解压该zip文件&#xff0c;得到temp.zip。十六进制编辑器查看temp.zip&#xff0c;会发现有多个文件头和文件尾。 用binwalk分离temp.zi…

Springboot项目实战

文章目录 SpringBootVue后台管理系统所需软件下载、安装、版本查询 *Spring项目项目架构 SpringBootVue后台管理系统 学习视频&#xff1a; https://www.bilibili.com/video/BV1U44y1W77D/?spm_id_from333.337.search-card.all.click&vd_sourcec901ae3ff497a02016ba7bada…

如何在windows系统部署Lychee网站,并结合内网穿透打造个人云图床

文章目录 1.前言2. Lychee网站搭建2.1. Lychee下载和安装2.2 Lychee网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 图床作为图片集中存放的服务网站&#xff0c;可以看做是云存储的一部分&#xff0c;既可…

接口测试的测试要点

接口测试的测试要点&#xff0c;你知道都有哪些吗&#xff1f; 接口测试是软件测试中的重要组成部分&#xff0c;它的目的是评估接口的质量和可靠性&#xff0c;以保证系统的正常运行。在进行接口测试时&#xff0c;必须要考虑到以下几个方面&#xff1a; 测试用例的编写 测试…

ES6 Function 面试题

ES6 Function 面试题 1. 请解释一下箭头函数的特点和使用场景。 答案&#xff1a; 箭头函数是 ES6 中新增的一种函数声明方式。它具有以下特点&#xff1a; 箭头函数中的 this 始终指向其定义时所在的上下文。箭头函数不能被用作构造函数&#xff0c;也无法通过 new 运算符…

ts的重载

官网示例 这里大概理解是 T 继承了Number|sting 加上&#xff1f;条件判断就是 T继承Number|sting 部分为true 没有继承部分为false&#xff0c; 就是输入string, 为true, 输入 null 则为false, type Exclude<T, U> T extends U ? never : T; // 相当于: type A …

CS_上线三层跨网段机器(完整过程还原)

以前讲过用cs_smb_beacon上线不出网机器&#xff0c;但是真实的网络拓扑肯定不止这么一层的网络&#xff01; 所以我就来搭建一个复杂一点的网络环境&#xff01;&#xff01; 当然了&#xff0c;这三台电脑之间都是不同的网段&#xff0c;&#xff08;但是同属于一个域环境&a…

golang学习7,glang的web的restful接口结构体传参

接口&#xff1a; //POST请求 返回json 接口传参json r.POST("/postJson", controller.PostUserInfo) 1.定义结构体 //定义结构体 type Search struct {Id intName string }2.结构体传参 //结构体传参 func PostUserInfo(c *gin.Context) {search : &Searc…

Qt6.8 GRPC功能使用(2)标准 Qt实现客户端

简介 基于之前的文章所说&#xff0c; Qt6.7之后才开始支持客户端、服务端、及双向流&#xff0c;恰好电脑需要重装&#xff0c;看到Qt6.8版本就直接安装了&#xff0c;内容也是使用Qt6.8的版本进行编译的 客户端实现步骤 1. 安装Qt6.8, 包含GRPC功能模块 Qt 6.8安装目录下包…

G1016倍数

题目描述 输入N个整数x1,x2,x3,...,xn&#xff0c;求100000以内有多少个数能被x1,x2,...,xn其中至少一个数整除。 输入格式 第一行1个正整数&#xff1a;N&#xff0c;范围在[1,30]。 第二行N个正整数&#xff1a;x1,x2,...,xn&#xff0c;每个数范围在[1,1000]。 输出格式…

PostgreSQL开发与实战(3)参数整理

作者&#xff1a;太阳 引言 在管理和配置PostgreSQL数据库时&#xff0c;了解参数的分类和了解如何查看和更改这些参数是至关重要的。参数的分类涉及到不同的生效方式&#xff0c;如内部参数、需要重启生效的参数、不需要重启而可以重新加载配置文件生效的参数等。本文将介绍…

5G网络介绍

目录 一、网络部署模式 二、4/5G基站网元对标 三、4/5G系统架构对比 四、5G核心单元 五、边缘计算 六、轻量化&#xff08;UPF下沉&#xff09; 方案一&#xff1a;UPF下沉 方案二&#xff1a;UPF下沉 方案三&#xff1a;5GC下沉基础模式 方案四&#xff1a;…

05 动力云客之分页查询用户 + 查询用户详情 + 新增用户

1. 用户列表分页查询实现 核心 使用pageHelper实现分页 GetMapping(value "api/users")//分页的参数可以不传, 不传就默认设置为1public R userPage(RequestParam(value "current", required false) Integer current) {if (current null) {current …

docker下gitlab安装配置

一、安装及配置 1.gitlab镜像拉取 docker pull gitlab/gitlab-ce:latest2.运行gitlab镜像 docker run -d -p 443:443 -p 80:80 -p 222:22 --name gitlab --restart always --privilegedtrue -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v …

数据库 -neo4j的基本操作

启动&#xff1a; 终端输入:neo4j.bat console 查&#xff1a; 1.查询所有&#xff1a;MATCH (n) RETURN n 2.查询所有标签中&#xff0c;出生于1997的&#xff1a;Match(n{born:1997}) return n 删&#xff1a; 1.删除所有&#xff1a;MATCH (n) DETACH DELETE n 增&am…

【蓝桥备赛】蜗牛——动态规划

题目链接 蜗牛 个人思路 在每根竹竿都求出到达其底部和到达当前竹竿传送门入口的最小耗时&#xff0c;依次递推&#xff0c;求出最后一根竹竿底部的耗时。 参考代码 C 由于此处需要格式化输出小数点后两位&#xff0c;所以采用printf感觉更方便一些。 #include<bits/…

关于在Ubuntu20.04环境下安装GRPC

关于在Ubuntu20.04环境下安装GRPC 1 cmake安装 要在Ubuntu 20.04上安装CMake 3.26.4,请按照以下步骤进行操作: 打开终端并更新apt软件包列表: sudo apt update安装必要的依赖项: sudo apt install -y wget gcc g++ build-essential下载CMake 3.26.4的源代码: wget https…