字符串划分

news/2024/7/20 18:31:20 标签: 华为od, java, 算法, 数据结构

题目描述

给定一个小写字母组成的字符串s,请找出字符串中两个不同位置的字符作为分割点,使得字符串分成的三个连续子串且子串权重相等,注意子串不包含分割点。
若能找到满足条件的两个分割点,请输出这两个分割点在字符串中的位置下标,若不能找到满足条件的分割点请返回0,0。

子串权重计算方式为:子串所有字符的ASCII码数值之和。

输入描述:

输入为一个字符串,字符串由a~z,26个小写字符组成,5 <= 字符串长度 <= 200。

输出描述:

输出为两个分割点在字符串中的位置下标,以逗号分隔

补充说明:

只考虑唯一解,不存在一个输入多种输出解的情况

收起

示例1

输入:

acdbbbca

输出:

2,5

说明:

以位置2和5作为分割点,将字符串分割为ac,bb,ca三个子串,每一个的子串权重都为196,输出为:2,5

示例2

输入:

abcabc

输出:

0,0

说明:

找不到符合条件的分割点,输出为0,0

题目解析

解题思路

使用贪心算法,遍历不同的切分点,将数据切分成三块
注意切分点的位置即可:
切点i:从1开始,到length-4
切点j:从i+2开始,到length-2

java_53">java实现

java">package com.HW;

/**
 * @ClassName : TstrCutWeight
 * @Author : kele
 * @Date: 2023/10/24 22:01
 * @Description :字符串划分
 */
public class TstrCutWeight {

    public static void main(String[] args) {

        handle("acdbbbca");


    }

    public static void handle(String str) {

        char[] chars = str.toCharArray();

        for (int i = 1; i < chars.length - 3; i++) {

            for (int j = i + 2; j < chars.length - 1; j++) {

                String s1 = str.substring(0, i);
                String s2 = str.substring(i + 1, j);
                String s3 = str.substring(j + 1, chars.length);
                if (Weight(s1) == Weight(s2) && Weight(s2) == Weight(s3)) {
                    System.out.println(i + "," + (j));
                    return;

                }
            }

        }
        System.out.println("0,0");
    }

    public static int Weight(String str) {

        int sum = 0;
        for (char c : str.toCharArray()) {
            sum += (int) c;
        }
        return sum;

    }
}


http://www.niftyadmin.cn/n/5118885.html

相关文章

【Java】小计 TCP UDP的区别

面向连接 TCP面向连接&#xff0c;需要连接&#xff0c;而UDP不需要建立连接 可靠性 TCP协议通过确认应答、连接管理、流量控制、拥塞控制来确保可靠性传输&#xff1b;UDP不保证可靠性传输。 性能 TCP传输效率慢&#xff0c;需要较多的资源开销&#xff0c;UDP传输效率快&am…

[架构之路-243]:目标系统 - 纵向分层 - 架构是表面轮廓、内部骨架、未来蓝图,企业组织架构、信息系统架构、软件架构、应用程序就架构

目录 一、什么是架构 1.1 架构是表面轮廓 1.2 架构是内部骨架 1.3 架构是蓝图&#xff0c;是愿景 1.4 架构是数据流、控制流、管理流、同步流 1.5 数据、控制、同步、管理的比较 二、架构的层级 2.1 企业组织架构 2.2 企业系统架构 2.2 信息系统架构 2.3 软件架构 …

Qt pro文件中 CONFIG += debug 作用

作用 在 Qt 项目文件&#xff08;.pro 文件&#xff09;中&#xff0c;CONFIG debug 的作用是指定项目以调试模式进行构建。 当在项目文件中添加 debug 到 CONFIG 变量时&#xff0c;Qt 构建系统将使用调试配置来编译项目。 这意味着编译器将生成带有调试信息的可执行文件&a…

JAVA 同城服务智慧养老护理助浴小程序源码的开发优势

随着社会老龄化进程的加速&#xff0c;智慧养老护理成为了一个备受关注的话题。其中&#xff0c;助浴服务作为养老护理中的重要一环&#xff0c;对于改善老年人的生活质量具有重要意义。本文将探讨JAVA同城服务智慧养老护理助浴小程序源码的开发优势&#xff0c;以期为相关领域…

【CCF】Z字形扫描

这题的关键是将整个扫描的过程&#xff0c;拆分成很多次斜着操作数组的过程。 而且这个过程中可以建立如下规律&#xff1a; &#xff08;1&#xff09;一斜线上的元素个数与切换到下一条斜线这一操作之间建立规律。 先讨论左上部分的数组&#xff1a; 1&#xff09;当元素个…

2023NOIP A层联测17-爆炸

给出一个 n m nm nm 的网格图&#xff0c;其中一些格子上有一个炸弹&#xff0c;一些格子上有一个水晶&#xff0c;剩下的格子为空地&#xff0c;什么也没有。 炸弹可以被引爆。每当一个炸弹被引爆&#xff0c;它必须选择&#xff1a;引爆它所在的这一行或者引爆它所在的这一…

解密Kubernetes:探索开源容器编排工具的内核

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

黄金代理这么多,怎么选?

目前&#xff0c;现货黄金代理已成为了市场中成熟的模式&#xff0c;我们只要在搜索引擎上搜索如何在市场中开户&#xff0c;会搜到各种各样的黄金代理&#xff0c;其中更是不乏服务非常优秀的。部分投资者早就接受了黄金代理的存在&#xff0c;并且率先开始在黄金代理中进行开…