华为od机试 Java 【切割字符串】

2023-11-17

题目

给定一个由小写字母组成的字符串。请找出两个位置,将字符串分为三部分。这三部分的总和应该是相同的,其中每部分的总和是其字符的ASCII码值的总和。注意,这两个位置的字符不包括在这三部分内。

如果你找到了这两个位置,请输出它们的位置。如果没有找到,请输出0,0。

例子:

输入: acdbbbca
输出: 2,5
这是因为当我们在位置2和5进行分割,我们得到三个部分:ac,bb,ca。它们的ASCII码值的总和都是相同的。

输入: abcabc
输出: 0,0
在这个例子中,我们找不到这样的两个位置。

思路

我们需要找到两个位置,将字符串分成三部分,并且这三部分的ASCII码值总和相同。比如:在字符串 “acdbbbca” 中,可以在第2和第5个位置切割字符串,得到 “ac”、“bb” 和 “ca” 三个子串。这三个子串的ASCII码值总和都是195。
通过get_prefix_sum 可以算出给定字符串每个前缀的ASCII码值总和,得到一个前缀和数组。前缀和数组的第i个元素存储的是字符串前i个字符的ASCII码值的总和。有了前缀和数组之后,就能找出任意子串的ASCII码值总和。determine_positions 可以将字符串分割成三个ASCII码值总和相等的子串的两个位置。

代码

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

华为od机试 Java 【切割字符串】 的相关文章

  • 使用 ProcessBuilder 运行 msys.bat

    我正在尝试使用 ProcessBuilder 在 java 中运行 msys bat 当我使用程序运行 bat 文件时 出现以下错误 找不到 rxvt exe 或 sh exe 二进制文件 正在中止 按任意键继续 这是代码 ProcessB
  • 使用 JodaTime 将 UTC 转换为本地时间(以毫秒为单位)

    我正在尝试使用 Jodatime 显示特定时间段内的交易 我们的服务器要求开始日期和结束日期采用 UTC 这可能是显而易见的 因此 围绕这些的任何业务逻辑都使用 DateTime 对象 并将时区设置为DateTimeZone UTC e g
  • 使用递归查找数组中的最大值

    对于我被要求解决的问题之一 我使用 for 循环找到了数组的最大值 所以我尝试使用递归来找到它 这就是我想到的 public static int findMax int a int head int last int max 0 if h
  • 表“DBNAME.hibernate_sequence”不存在

    我有一个使用 spring data jpa 的 Spring Boot 2 0 1 RELEASE 应用程序
  • Eclipse 构建 Android 应用程序:如何在编译时创建两个版本?

    我正在编写一个 Android 应用程序 并希望基于相同的代码创建两个版本 免费版本和高级版本 我有两个版本的一个代码库 具有各种运行时检查来启用或禁用某些功能 例如 public class MyAppContext extends Ap
  • 如何用Spring进行只读和读写的数据库路由

    我正在研究 Spring 中的事务路由 但我的应用程序存在运行时问题 我有两个 MySQL 数据库 一个用于读取 一个用于读 写 但是我的路由配置不起作用 当我应用只读配置时 我没有成功 这是我的配置 pom xml
  • 如何在 El Capitan (OS X 10.11) 中设置 Android Studio?

    全新安装 El Capitan 10 11 尝试安装 Android Studio 版本 1 21 Error Android Studio was unable to find a valid JVM Please download it
  • 我的 Java Web 应用程序中的 ClassNotFoundException/NoClassDefFoundError

    我使用 Java 开发了一个 Web 应用程序 当我将其部署到我的应用程序服务器 Jetty Tomcat JBoss GlassFish 等 时 会抛出错误 我可以在堆栈跟踪中看到此错误消息 java lang ClassNotFound
  • 如何向正在运行的 Linux 进程发送 Ctrl-Break?

    我正在调试在 Sun 的 JDK 1 4 2 18 上运行的应用程序中的内存泄漏 该版本似乎支持命令行参数 XX HeapDumpOnCtrlBreak 这可能会导致 JVM 在遇到控制中断时转储堆 如何将其发送到 Linux 机器上的后台
  • JUnit 测试 Spymemcached 客户端

    我有一个类围绕spymemcached 客户端 我想编写一些JUnit 测试来测试getValue 和addKey 方法是否有效 问题是无法从测试服务器访问spymemcached 服务器 所以我想这里需要一些模拟 我的简化类看起来像这样
  • 字符串文字的行为令人困惑

    下面的代码中字符串文字的行为非常令人困惑 我可以理解第 1 行 第 2 行和第 3 行是true 但为什么是第 4 行false 当我打印两者的哈希码时 它们是相同的 class Hello public static void main
  • java中使用[:punct:]函数的正则表达式

    我在用 punct 替换 a 中特殊字符的函数 字符串例如 REPLACE REGEXP REPLACE 第 1 列 punct 作为输出 作为java中SQL字符串的一部分 但我想要特定的特殊字符 不被替换 你能建议最好的方法吗 Acc
  • JavaFX 中的隐形舞台/场景

    我正在寻找一种隐藏 JavaFX 舞台或场景的方法 现在我知道了 hide 但这行不通 我需要一些仍然保留窗口的东西 但只是使其完全透明 一个很好的比喻是display none and visibility hidden在CSS中 第一个
  • Hibernate 在更新集合时删除孤儿

    我发现从 Hibernate 中的集合中删除时 孤立记录不会被删除 我一定是做了一些简单的错误 这是 Hibernate 101 但我找不到它 鉴于以下情况 public class Book ManyToOne NotNull Autho
  • HTML 解析和删除锚标记,同时使用 Jsoup 保留内部 html

    我必须解析一些html并删除锚标记 但我需要保留锚标记的innerHTML 例如 如果我的 html 文本是 String html div p some text a href some link text a p div 现在我可以解析
  • java中的new关键字是多余的吗?

    我来自 C 所以 java 的一个特性我不太理解 我读过所有对象都必须使用关键字创建new 但基元除外 现在 如果编译器可以识别原始类型 并且不允许您在不调用其构造函数的情况下创建对象new 有这个关键字的原因是什么new根本吗 有人可以提
  • 如何在java中将ojalgo稀疏数组存储到文件中?

    我目前有一个 SparseStore 矩阵 我在其中执行大量计数和计算 我想将其存储到文件中 以便以后可以重复使用它 而无需重新执行之前的所有计算 我尝试了 Java 中的基本序列化 ObjectOutputStream outputStr
  • 滚动文件实现

    我一直很好奇滚动文件是如何在日志中实现的 如何开始用任何语言创建一个文件写入类 以确保不超过文件大小 我能想到的唯一可能的解决方案是 write method size file size size of string to write i
  • Spring MVC - 两次提供内容

    我已经花了一周时间寻找有关如何将内容服务器到我的网页的指导 两次 因为使用 Model 或 ModelAndView 切断内容一次可以工作 但如果用户再次与页面交互 我希望它加载更多内容同一页 Java Spring 后端方法 Get 有效
  • 如何将钱兑换成零钱

    尝试将输入的数字转换为 25 美分 50 美分 10 美分和 10 分 有几个问题 public class Coins public static void main String args private int quarters di

随机推荐

  • selenium处理12306出发地value值修改不成功

    不知道你们在使用ui框架编写12306时 有没有遇到过这样的问题 在使用selenium去编写场景时发现出发地这个input标签 每次都没办法按照你的预期去修改值 例如 首先在浏览器里使用document发现完全可以修改掉输入框的值 然后兴
  • 排序算法总结(Python版本)

    看了很多排序算法 每种算法都有多个版本 现总结一版自己觉得容易理解的 供以后翻阅 1 插入排序 直接插入排序 直接插入排序是将一个数插入到已经排序好的序列中 做法是先将第一个数作为已经排序好的 依此将后面的数取出插入到前面已排序好的序列中
  • 数据科学猫:机器学习建模流程

    进击的橘子猫正式改名上线啦 我的CSDN主页 https blog csdn net Orange Spotty Cat 也欢迎大家搜索微信公众号 进击的橘子猫 我也会定期分享数据科学 Python 大数据 项目管理与PPT的相关知识 让我
  • 【机器学习】—各类梯度下降算法 简要介绍

    阅读之前看这里 博主是一名正在学习数据类知识的学生 在每个领域我们都应当是学生的心态 也不应该拥有身份标签来限制自己学习的范围 所以博客记录的是在学习过程中一些总结 也希望和大家一起进步 在记录之时 未免存在很多疏漏和不全 如有问题 还请私
  • 考研教训分享

    考研教训分享 大家好 今天分享一篇考研教训 这不是经验帖 这只是一篇避坑指南 记录了我考研期间所走的所有弯路 希望可以帮助到在这条路上奋斗的你 我是某双非的工科考生 所以这篇文章更偏向于考数学的研友 2月中旬备考 复习前感觉自己之前大学学过
  • 你的朋友可能还在为毕设烦恼,而你已经有了这113个Java计算机毕业设计项目

    站在计算机专业毕业设计的门槛上 你是否为选题和项目规划而烦恼 今天 我们将为即将毕业的同学们展示多个毕业设计项目 期待能为正在为毕业设计抓狂的同学们提供一些帮助 一 成品列表 以下所有springboot框架项目的源码博主已经打包好上传到百
  • Mac用户入门的13个基础终端命令

    终端是用户在Mac电脑中经常使用的应用程序 也是非常好用的Mac应用 终端应用之所以受欢迎是因为 它可以直接执行用户给出的命令 从而完成其他程序无法完成的操作 更改目录 cd 示例用法 cd folder 使用cd命令更改目录 例如 cd
  • vue进阶——整合富文本编辑器wangEditor

    vue进阶 整合富文本编辑器wangEditor 前言 一 什么是wangEditor 二 安装wangEditor 1 React 2 Vue2 3 Vue3 4 CDN 三 基本使用 1 vue2 2 vue3 四 文件上传问题 1 前
  • kdj指标主要看哪个值_KDJ指标的最全面攻略文章,散户学会后看指标不再迷茫,超赞...

    本文由公众号越声投研 yslcwh 整理 仅供参考 不构成操作建议 如自行操作 注意仓位控制和风险自负 我们步入了信息时代 知识已经是我们人类生存和生产当中最为重要的因素之一 而如今 在求知欲的趋势下 我们消费者也甘为知识而花费解囊 智慧经
  • 关于set_output_delay与set_input_delay概念与用法

    一 这两条约束语句都是针对板级延时而言的 语句中必须的有是 时钟与port 二 set input delay 用于数据输入端口 调节数据输入与时钟输入到来的相位关系 当FPGA外部送入FPGA内部寄存器数据时 会有两个时钟launch c
  • 被迫学习一波Linux命令

    事情起因 部署一个服务 人家说了最低配置是3G 我没当回事 拿着个2G的服务器直接就上了 结果 哈哈 都能猜到结果 服务器内存爆了 而且最可气的是服务器还登不进去 重启之后内马上又被拉满了 根本连接进不去 算是一次小小的事故 记录是为了不再
  • msvcp110.dll丢失原因——msvcp110.dll丢失怎么修复(最新可修复)

    昨天卸载了一个垃圾软件以后 我的其他软件就无法打开运行 提示msvcp110 dll丢失 无法继续执行此代码 今天早上找了很多方法 终于把msvcp110 dll丢失的原因以及修复的方法都弄明白了 msvcp110 dll是一个非常重要的文
  • 26功能之VS2013静态库的制作与使用

    26功能之VS2013静态库的制作与使用 一 制作静态库 1 新建项目 选择Win32项目 2 先选择空项目 静态库 若先选择静态库 空项目按钮无法被选中 这点需要注意 3 可以看到此时是没有其它 h和 cpp文件 有时VS13或者15即使
  • 天拓分享

    1 组态王和多台西门子 S7 300 400PLC 通过 dp 协议通讯时 设备地址应如何定义 1 硬件连接 计算机中插入一块 CP5611 或 CP5613 可实现将多个 S7 300 400PLC连接在一条 DP 总线上 2 DP 协议
  • 读取问题:UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xd0 in position 0: invalid continuation

    关于读取CSV文件错误问题 1 新建CSV的文件 问题描述 新建xls工作表之后直接修改文件扩展名为csv 然后读取csv文件时出现如题错误 data pd read csv E csv 尝试了以下改进方法仍然错误 达咩达咩 不过大家有类似
  • 基础巩固

    写在前面 本文主要是自己用来巩固C 基础用的 内容源自我的一位同学rzj的八股总结 内容很多 后面会加上目录之类的 方便查找 如果有错误 欢迎及时在评论区或私信指出 1 1 1 简述下C 语言的特点 C 在C语言基础上引入了面对对象的机制
  • linux中vim试题,测试开发面试的Linux面试题总结之一:vim使用方法

    原标题 测试开发面试的Linux面试题总结之一 vim使用方法 编写测试脚本 查看日志 查看配置文件 少不了要和vim打交道 vim是unix linux下的文本编辑器 它一般有两个模式 命令模式和编辑模式 通过ESC来切换到命令模式 其常
  • bitcoinj开发环境搭建

    bitcoinj开发包是一个Java版本的比特币协议实现 使用bitcoinj就可以实现钱包管理和交易的发送与接收 而无须本地安装bitcoin core软件 本文将介绍bitcoinj开发环境的搭建方法 虽然bitcoinj有完备的文档
  • Brownie 开发智能合约(入门使用)

    简介 上篇文章 使用了 Remix 在线 IDE 个人感觉 Remix 在入门智能合约开发时 是很好的上手工具 因为 Remix 帮我们处理好了编译 部署的过程 并且还通过 JavaScript VM 准备好了本地区块链方便我们测试 可谓开
  • 华为od机试 Java 【切割字符串】

    题目 给定一个由小写字母组成的字符串 请找出两个位置 将字符串分为三部分 这三部分的总和应该是相同的 其中每部分的总和是其字符的ASCII码值的总和 注意 这两个位置的字符不包括在这三部分内 如果你找到了这两个位置 请输出它们的位置 如果没