遇到的题目

news2025/1/18 5:17:12

第一个线程打印10次a ,第二个线程打印10次吧,第三个线程打印10次c,三个线程交替打印abc


public class PrintABC {
    private static final Object lock = new Object();
    private static int count = 0;
    
    public static void main(String[] args) {
        Thread threadA = new Thread(new PrintThread("A", 0));
        Thread threadB = new Thread(new PrintThread("B", 1));
        Thread threadC = new Thread(new PrintThread("C", 2));
        
        threadA.start();
        threadB.start();
        threadC.start();
    }
    
    static class PrintThread implements Runnable {
        private String name;
        private int id;
        
        public PrintThread(String name, int id) {
            this.name = name;
            this.id = id;
        }
        
        @Override
        public void run() {
            for (int i = 0; i < 10; i++) {
                synchronized (lock) {
                    while (count % 3 != id) {
                        try {
                            lock.wait(); // 当前线程等待
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                    
                    System.out.print(name);
                    count++;
                    
                    lock.notifyAll(); // 唤醒其他等待的线程
                }
            }
        }
    }
}

有一个string变量,如何找出字符串中出现次数最多的字符

import java.util.HashMap;
import java.util.Map;

public class MostFrequentChar {
    public static char findMostFrequentChar(String str) {
        Map<Character, Integer> charCount = new HashMap<>();
        
        // 统计每个字符出现的次数
        for (char c : str.toCharArray()) {
            if (charCount.containsKey(c)) {
                charCount.put(c, charCount.get(c) + 1);
            } else {
                charCount.put(c, 1);
            }
        }
        
        char mostFrequentChar = '\0';
        int maxCount = 0;
        
        // 找出出现次数最多的字符
        for (Map.Entry<Character, Integer> entry : charCount.entrySet()) {
            char c = entry.getKey();
            int count = entry.getValue();
            
            if (count > maxCount) {
                mostFrequentChar = c;
                maxCount = count;
            }
        }
        
        return mostFrequentChar;
    }
    
    public static void main(String[] args) {
        String str = "abracadabra";
        char mostFrequentChar = findMostFrequentChar(str);
        System.out.println("出现次数最多的字符: " + mostFrequentChar);
    }
}

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

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

相关文章

nodejs+vue+elementui+express酒店管理系统

登录&#xff1a;运行系统后&#xff0c;进行登录&#xff0c;可使用本系统。 客房预定&#xff1a;此界面先通过条件查询客房信息&#xff0c;然后进行客房预定。对预定的客房还可以取消和支付操作。 信息查询&#xff1a;可查询所有的公告信息&#xff0c;点击公告名称&#…

【黑马程序员】mysql进阶再进阶篇笔记

64. 进阶-锁-介绍(Av765670802,P121) 为了应对不同场景 全局锁-所有表 表计锁 一张表 行级锁 一行数据 65. 进阶-锁-全局锁-介绍(Av765670802,P122) 66. 进阶-锁-全局锁-一致性数据备份(Av765670802,P123) 67. 进阶-锁-表级锁-表锁(Av765670802,P124) 读锁、写锁 68. 进阶…

List 3.5 详解原码、反码、补码

前言 欢迎来到我的博客&#xff0c;我是雨空集&#xff08;全网同名&#xff09;&#xff0c;无论你是无意中发现我&#xff0c;还是有意搜索而来&#xff0c;我都感到荣幸。这里是一个分享知识、交流想法的平台&#xff0c;我希望我的博客能给你带来帮助和启发。如果你喜欢我…

redis 常用方法

、进入redis redis-cli -p 6409 -h 192.168.0.100 -a q9pCeAEMAWEL 2、查询keys keys activity_mobile_* 3、赋值、查值、删除 set mykey 1 get mykey del mykey 4、批量删除 [milanredis-50-240 ~]$ redis-cli -p 6409 -h 192.168.0.100 -a q9pCeAEMAWEL keys abc* | xa…

小米机械键盘 TKL 开启预售:紧凑 87 键布局,到手 229 元

10 月 25 日消息&#xff0c;小米目前在电商平台上架了“小米机械键盘 TKL”&#xff0c;采用 87 键设计&#xff0c;支持蓝牙、有线、2.4G 连接&#xff0c;到手价为 229 元&#xff0c;最晚 11 月 3 日发货。 ▲ 图源 小米 该键盘采用简洁的黑色设计&#xff0c;紧凑 87 键布…

密码学与网络安全:量子计算的威胁与解决方案

第一章&#xff1a;引言 在当今数字化世界中&#xff0c;网络安全一直是一个备受关注的话题。密码学作为网络安全的基石&#xff0c;扮演着至关重要的角色。然而&#xff0c;随着科学技术的不断进步&#xff0c;特别是量子计算的崛起&#xff0c;传统密码学的基础受到了严重威…

IT行业变成了夕阳行业

IT技术发展背景及历程 从2010年左右开始&#xff0c;大众创新&#xff0c;万众创业变成了一个经常看到的词语&#xff0c;在创业潮的带动下&#xff0c;同时刚好赶上了互联网的高速发展&#xff0c;一大批互联网创业公司应运而生&#xff0c;在这样的背景下&#xff0c;IT行业…

JAVASE--继承

在面向对象编程中&#xff0c;继承是一种重要的概念&#xff0c;它允许一个类继承另一个类的特征和行为。在实现继承时&#xff0c;可以使用以下步骤&#xff1a; 1. 创建一个新的子类&#xff0c;它将继承父类的特征和行为。2. 在子类的定义中使用关键字“extends”来指定它的…

c# .net6 在线条码打印基于

条码打印基于:BarTender、ORM EF架构 UI展示&#xff1a; 主页代码&#xff1a; using NPOI.OpenXmlFormats.Spreadsheet; using ServerSide.Models; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawi…

Android官方ShapeableImageView描边/圆形/圆角图,xml布局实现

Android官方ShapeableImageView描边/圆形/圆角图&#xff0c;xml布局实现 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.…

【PyQt学习篇 · ②】:QObject - 神奇的对象管理工具

文章目录 QObject介绍Object的继承结构测试QObject对象名称和属性QObject对象名称和属性的操作应用场景 QObject父子对象QObject父子对象的操作 QObject的信号与槽QObject的信号与槽的操作 QObject介绍 在PyQt中&#xff0c;QObject是Qt框架的核心对象之一。QObject是一个基类…

【C++】STL容器适配器入门:【堆】【栈】【队列】(16)

前言 大家好吖&#xff0c;欢迎来到 YY 滴C系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; 目录 一.容器适配器的概念二.为什么stack和q…

Ubuntu Studio 23.10发布

导读Ubuntu Studio 是 Ubuntu 的多媒体社区版。该项目的 23.10 版本重点改进了 PipeWire 支持和音频配置。 PipeWire 已获得大量改进&#xff0c;包括针对专业音频和消费音频的修复。现在&#xff0c;JACK 兼容性可实时运行&#xff0c;一些 FireWire 功能也已实现。 我们还在…

Wpf 使用 Prism 实战开发Day01

一.开发环境准备 1. VisualStudio 2022 2. .NET SDK 7.0 3. Prism 版本 8.1.97 以上环境&#xff0c;如有新的版本&#xff0c;可自行选择安装新的版本为主 二.创建Wpf项目 1.项目的名称:MyToDo 项目名称:这里只是记录学习&#xff0c;所以随便命名都无所谓,只要觉得合理就…

sql-50练习题0-5

sql练习题0-5题 前言数据库表结构介绍学生表课程表成绩表教师表 0-1 查询"01"课程比"02"课程成绩高的学生的信息及课程分数0-2查询"01"课程比"02"课程成绩小的学生的信息及课程分数0-3查询平均成绩大于等于60分的同学的学生编号和学生…

2023年江西省“振兴杯”工业互联网安全技术技能大赛暨全国大赛江西选拔赛 Write UP

文章目录 一、协议分析 - modbus二、协议分析 - 异常的流量三、协议分析 - S7Error四、协议分析 - OmronAttack五、组态编程 - 工程的秘密六、组态编程 - 工程的秘密七、组态编程 - 简单的计算八、组态编程 - 交通灯九、组态编程 - 有趣的转盘十、应急处置 - 登录日志分析十一、…

DevOps与CI/CD的最佳实践

在当今的软件开发领域&#xff0c;DevOps&#xff08;开发与运维的结合&#xff09;和CI/CD&#xff08;持续集成/持续交付&#xff09;已经成为了不可或缺的一部分。它们不仅提高了软件开发的效率&#xff0c;还帮助团队更快地交付高质量的软件。本文将深入探讨DevOps文化和CI…

nodejs+vue+elementui+express外卖数据分析python

在上述需求分析的基础上&#xff0c;通过深入研究&#xff0c;将系统使用人员划分为信息采集编辑、信息维护编辑、信息发布编辑三个角色。 本论文的研究目的是为了给采编者提供一套完善、高效的智能信息收集解决方案&#xff0c;并利用一系列的程序设计与开发&#xff0c;为采…

Linux中shell脚本练习

目录 1.猜数字 2.批量创建用户 3.监控网卡Receive Transmit 数据的变化 4.部署Linux 5.系统性能检测脚本 6.分区脚本 7.数据库脚本 1.猜数字 随机数的生成 使用环境变量RANDOM&#xff0c;范围是0&#xff5e;32767 编写guest.sh&#xff0c;实现以下功能&#xff1…

AS/400简介

AS400 AS400 简介AS/400操作系统演示 AS400 简介 在 AS400 中&#xff0c;AS代表“应用系统”。它是多用户、多任务和非常安全的系统&#xff0c;因此用于需要同时存储和处理敏感数据的行业。它最适合中级行业&#xff0c;因此用于制药行业、银行、商场、医院管理、制造业、分销…