当前位置: 首页 > article >正文

30组成字符串ku的最大次数-青训营刷题

问题描述

给定一个字符串 ss,该字符串中只包含英文大小写字母。你需要计算从字符串中最多能组成多少个字符串 "ku"。每次可以随机从字符串中选一个字符,并且选中的字符不能再使用。字符串中的字符大小写可以忽略,即大写和小写字母视为相同。

例如,输入 "AUBTMKAxfuu",从中最多能组成 1 个 "ku"


测试样例

样例1:

输入:s = "AUBTMKAxfuu"
输出:1

样例2:

输入:s = "KKuuUuUuKKKKkkkkKK"
输出:6

样例3:

输入:s = "abcdefgh"
输出:0

代码如下:

import java.util.*;

public class Main {
    public static int solution(String s) {
        int countK = 0;
        int countU = 0;

        // 遍历字符串,统计 'k' 和 'u' 的数量
        for (char c : s.toCharArray()) {
            char lowerChar = Character.toLowerCase(c); // 将字符转换为小写
            if (lowerChar == 'k') {
                countK++;
            } else if (lowerChar == 'u') {
                countU++;
            }
        }
        return Math.min(countK, countU);  // 妙妙妙哈哈哈
    }

    public static void main(String[] args) {
        System.out.println(solution("AUBTMKAxfuu") == 1);
        System.out.println(solution("KKuuUuUuKKKKkkkkKK") == 6);
        System.out.println(solution("abcdefgh") == 0);
    }
}

 代码解释:

好的!这段代码的主要功能是统计一个字符串中字符 'k''u' 的数量,并返回它们数量的较小值。以下是对代码的详细解释:

1. 函数定义

java复制

public static int solution(String s)
  • 这是一个静态方法(static),名为 solution,它接收一个字符串参数 s,并返回一个整数。

  • public 表示这个方法可以被其他类调用。

2. 变量初始化

java复制

int countK = 0;
int countU = 0;
  • 定义了两个变量 countKcountU,分别用于统计字符串中 'k''u' 的数量。初始值都为 0。

3. 遍历字符串

java复制

for (char c : s.toCharArray()) {
    char lowerChar = Character.toLowerCase(c); // 将字符转换为小写
    if (lowerChar == 'k') {
        countK++;
    } else if (lowerChar == 'u') {
        countU++;
    }
}
  • s.toCharArray():将字符串 s 转换为字符数组,这样可以逐个字符地遍历字符串。

  • Character.toLowerCase(c):将当前字符 c 转换为小写。这是因为 'K''k',以及 'U''u' 应该被视为相同的字符。

  • ifelse if 判断

    • 如果转换后的字符是 'k',则 countK 加 1。

    • 如果转换后的字符是 'u',则 countU 加 1。

  • 这段代码会逐个检查字符串中的每个字符,并统计 'k''u' 的数量。

4. 返回结果

java复制

return Math.min(countK, countU);
  • 使用 Math.min 函数,返回 countKcountU 中的较小值。

  • 这个结果表示字符串中 'k''u' 的数量中较小的那个值。

5. 主函数

java复制

public static void main(String[] args) {
    System.out.println(solution("AUBTMKAxfuu") == 1);
    System.out.println(solution("KKuuUuUuKKKKkkkkKK") == 6);
    System.out.println(solution("abcdefgh") == 0);
}
  • 这是程序的入口点。

  • 调用了 solution 方法,并传入了几个测试字符串:

    • "AUBTMKAxfuu":包含 1 个 'k' 和 2 个 'u',返回值为 1。

    • "KKuuUuUuKKKKkkkkKK":包含 10 个 'k' 和 6 个 'u',返回值为 6。

    • "abcdefgh":不包含 'k''u',返回值为 0。

  • 使用 System.out.println 输出布尔值,表示 solution 方法的返回值是否与预期值相等。

总结

这段代码的核心逻辑是:

  1. 遍历字符串,统计 'k''u' 的数量(忽略大小写)。

  2. 返回这两个数量中的较小值。

这种逻辑可以用于一些简单的字符统计问题,例如检查某种模式的匹配程度(比如 'ku' 的组合数量)。


http://www.kler.cn/a/525557.html

相关文章:

  • 在Putty创建php文件
  • 2025美赛数学建模MCM/ICM选题建议与分析,思路+模型+代码
  • Mybatis是如何进行分页的?
  • 神经网络|(七)概率论基础知识-贝叶斯公式
  • 【QT】- QUdpSocket
  • EtherCAT主站IGH-- 19 -- IGH之fsm_pdo.h/c文件解析
  • 将点云转换为 3D 网格:Python 指南
  • 分享几个好用的Edge扩展插件
  • 自制一个入门STM32 四足机器人具体开发顺序
  • Pwn 入门核心工具和命令大全
  • 简要介绍C语言与c++共有的数学函数
  • Versal - 基础3(AXI NoC 专题+仿真+QoS)
  • Leetcode Unique Path II
  • 【华为OD-E卷 - VLAN资源池 100分(python、java、c++、js、c)】
  • 【Elasticsearch】 Compound Queries
  • 三天急速通关JavaWeb基础知识:Day 1 后端基础知识
  • 你好!这是我自己的CSDN博客!
  • 【B站保姆级视频教程:Jetson配置YOLOv11环境(二)SSH连接的三种方式】
  • 伪装难掩锋芒:新一代奥迪 RS5 Sportback 路测图首曝
  • CARAFE模型详解
  • nodejs:js-mdict 的下载、安装、测试、build
  • 并发编程基础 - 并发编程的概念(C++)
  • 32【post与get】
  • 【go语言】接口
  • Vue3.0教程003:setup语法糖
  • Linux中使用unzip