首页 > 其他分享 >【天梯第11层】

【天梯第11层】

时间:2025-01-17 09:01:05浏览次数:3  
标签:11 字符 str int 数组 天梯 字符串 public

目录

题目 1:判断一个字符串是否是回文(忽略大小写)

题目 2:计算数组中所有偶数的平均值

题目 3:找出字符串中出现次数最多的字符


宝子,你真的太牛啦!一路过关斩将,成功站在了 Java 基础 1000 题天梯的第十一层!想想之前的每一层挑战,你都完成得那么出色,积累了超多宝贵经验。这第十一层的题目,虽说难度会有一点点提升,但都是基于咱们最基础的语法知识。只要你保持冷静,认真分析,把之前掌握的技巧都运用起来,肯定能轻松应对。现在,让我们信心满满地开启这一层的挑战吧!

题目 1:判断一个字符串是否是回文(忽略大小写)

编写一个 Java 方法,接收一个字符串str,判断它是否为回文,并且忽略字符串的大小写。例如,"Madam" 和 "MaDam" 都应该被判断为回文。

public class PalindromeIgnoreCaseChecker {
    public static boolean isPalindromeIgnoreCase(String str) {
        // 请在此处编写代码
    }
}

答案 1

public class PalindromeIgnoreCaseChecker {
    public static boolean isPalindromeIgnoreCase(String str) {
        String lowerCaseStr = str.toLowerCase();
        int left = 0;
        int right = lowerCaseStr.length() - 1;
        while (left < right) {
            if (lowerCaseStr.charAt(left)!= lowerCaseStr.charAt(right)) {
                return false;
            }
            left++;
            right--;
        }
        return true;
    }
}

解析:首先,为了实现忽略大小写的判断,代码将输入字符串str通过toLowerCase方法转换为小写形式,存储在lowerCaseStr中。接着,使用双指针法,定义两个指针leftright,分别指向字符串的开头和末尾。在while循环中,只要left小于right,就不断比较这两个指针指向的字符。如果发现不相等的字符,说明该字符串不是回文,直接返回false。当left超过或等于right时,表明整个字符串都比较完了,且所有对应位置的字符都相等,所以返回true,表示该字符串是回文(忽略大小写)。

题目 2:计算数组中所有偶数的平均值

给定一个整数数组arr,编写一个 Java 方法,计算数组中所有偶数的平均值,并返回这个平均值。如果数组中没有偶数,返回 0。

public class EvenAverageCalculator {
    public static double averageOfEvens(int[] arr) {
        // 请在此处编写代码
    }
}

答案 2

public class EvenAverageCalculator {
    public static double averageOfEvens(int[] arr) {
        int sum = 0;
        int count = 0;
        for (int num : arr) {
            if (num % 2 == 0) {
                sum += num;
                count++;
            }
        }
        if (count == 0) {
            return 0;
        }
        return (double)sum / count;
    }
}

解析:这段代码通过遍历数组arr来计算偶数的平均值。首先,初始化两个变量sumcount,分别用于存储偶数的总和以及偶数的个数,初始值都为 0。在for - each循环中,对数组中的每个元素num进行判断,如果num是偶数,就将其加到sum中,并将count加 1。遍历结束后,如果count为 0,说明数组中没有偶数,按照题目要求返回 0。否则,将sum转换为double类型,再除以count,得到偶数的平均值并返回。

题目 3:找出字符串中出现次数最多的字符

编写一个 Java 方法,接收一个字符串str,找出字符串中出现次数最多的字符并返回。如果有多个字符出现次数相同且都是最多的,返回其中任意一个。

public class MostFrequentCharFinder {
    public static char mostFrequentChar(String str) {
        // 请在此处编写代码
    }
}

答案 3

public class MostFrequentCharFinder {
    public static char mostFrequentChar(String str) {
        int[] charCount = new int[128];
        for (char c : str.toCharArray()) {
            charCount[c]++;
        }
        int maxCount = 0;
        char result = '\0';
        for (int i = 0; i < 128; i++) {
            if (charCount[i] > maxCount) {
                maxCount = charCount[i];
                result = (char)i;
            }
        }
        return result;
    }
}

解析:这段代码利用一个长度为 128 的整型数组charCount来统计每个字符出现的次数,因为 ASCII 码表中字符的范围是 0 到 127。在for - each循环中,将字符串str转换为字符数组后遍历,每次遇到一个字符,就将对应charCount数组位置的值加 1。接着,初始化maxCount为 0 和result为一个空字符'\0'。再通过一个for循环遍历charCount数组,找到出现次数最多的字符。如果当前字符的出现次数大于maxCount,就更新maxCount为当前字符的出现次数,并将result更新为当前字符。最后返回result,即字符串中出现次数最多的字符。

标签:11,字符,str,int,数组,天梯,字符串,public
From: https://blog.csdn.net/weixin_73355603/article/details/145193602

相关文章

  • 【AIcoding技术必知必会】11问--CI/CD流水线是什么?
    基础介绍软件开发生命周期(SDLC)由下面这几个关键阶段组成:开发、测试、部署和运维。CI/CD将这些阶段自动化并整合起来,实现更快更可靠的发布。当代码提交到git仓库,便会触发自动的构建和测试流程。其中会运行端到端测试用例来验证代码。如果测试通过,代码就会自动部署到预发或生产......
  • 团体程序设计天梯赛-练习集——L1-007 念数字
    前言这道题价值10分,题目不难,稍稍的有点逻辑,分值也不低,这种题拿下应该差不多L1-007念数字输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出fu字。十个数字对应的拼音如下:0:ling1:yi2:er3:san4:si5:wu6:liu7:qi8:ba9:jiu输入格式:输入在......
  • 【教程4>第5章>第11节】QPSK调制与相位偏差模拟FPGA实现
    本课程学习成果预览 欢迎订阅FPGA/MATLAB/Simulink系列教程《★教程1:matlab入门100例》《★教程2:fpga入门100例》《★教程3:simulink入门60例》《★教程4:FPGA/MATLAB/Simulink联合开发入门与进阶X例》目录1.软件版本2.QPSK调制理论简介3.QPSK调制与相位偏差模拟......
  • Tomcat自动监听重启.250116
    1.bash脚本vim/home/sh/restart_tomcat.sh#!/bin/sh#configurations:Automaticmonitoringtomcatprocess,hunguptherestartoperation#author:AmadeusLANG="en_US.utf8"exportLANGexportPATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bi......
  • vscode使用github.211014
    1,vscode打开terminal,生成RSA密钥,并查看蜜月PSD:\\code\\SQL>gitinitReinitializedexistingGitrepositoryinD:/code/SQL/.git/PSD:\\code\\SQL\>gitconfig--globaluser.nameamadeusPSD:\\code\\SQL\>gitconfig--globaluser.emailvegas......
  • 906 [CF 1117D] Magic Gems
    //906[CF1117D]MagicGems.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。///*http://oj.daimayuan.top/course/22/problem/1046Reziba拥有无限多个魔法宝石,每个魔法宝石的大小为1单元。每个魔法宝石可以被分解为m个普通宝石,每个普通宝石的大小也是1......
  • 课设毕设分享:基于单片机的风扇控制器设计 (AT89C52、Proteus、Keil)二、DHT11温湿度传感
    往期内容课设毕设分享:基于单片机的风扇控制器设计(AT89C52、Proteus、Keil)一、初期准备+单片机最小系统(时钟电路、复位电路)手把手教学如何做一份高分课设文章目录往期内容前言一、课设要求1.基本要求2.方案设定首先进行前期准备工作配置环境绘制思维导图功能要求分析大......
  • 计算机毕业设计—311017 spring boot酒店预定系统(源码免费领)
    摘 要信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对酒店客房预定等问题,对酒店信息管理进行研究分析,然后开发设计出酒店预订系统以解决问题。......
  • VP Codeforces Round 911 (Div. 2)
    A.CoverinWater题意:有n个格子,有些格子是好的,有些是坏的,你要给好格子都装上水,你可以花费一点价值让一个格子有水,也可以把一个格子的水移到另一个格子,没有花费。如果一个格子是好格子并且两边的格子都有水,这个格子就会自己填满水。问最少花费让所有好格子有水。容易想到,如果......
  • rK3568-修改RTL8211F-CG网口led显示灯状态
    1.修改代码路径/home/salesdmcf/works/SDK/Linux/kernel/drivers/net/phy/realtek.cstaticintphy_rtl8211f_led_fixup(structphy_device*phydev){u32val,val2;printk("lyc----->in:%s\n",__func__);/*setled1(green)Link10/100/1000M......