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

力扣每日一题 2306.公司命名

做题过程中使用到的java语法:

1.从一个字符串中取出一部分字符串:

String str = "Hello, World!";  
String part = str.substring(7); // 从索引7开始到字符串末尾  
System.out.println(part); // 输出: World!

class Solution {

    public long distinctNames(String[] ideas) {

        Map<Character, Set<String>> names = new HashMap<Character, Set<String>>();

        //首先建立了一个双列集合

        for (String idea : ideas) {

            names.putIfAbsent(idea.charAt(0), new HashSet<String>());

            //putIfAbsent是map接口中的一个方法,如果指定的键尚未与某个值相关联

            //则将其与给定的值相关联

            //段代码的目的是确保names这个Map中,以idea字符串的第一个字符为键的映射存在

            //且其值是一个新的HashSet<String>实例(如果之前不存在这样的映射)。

            names.get(idea.charAt(0)).add(idea.substring(1));

        }

        long ans = 0;

        for (Map.Entry<Character, Set<String>> entryA : names.entrySet()) {

            char preA = entryA.getKey();

            Set<String> setA = entryA.getValue();

            for (Map.Entry<Character, Set<String>> entryB : names.entrySet()) {

                char preB = entryB.getKey();

                Set<String> setB = entryB.getValue();

                if (preA == preB) {

                    continue;

                }

                int intersect = getIntersectSize(setA, setB);

                //getIntersectSize方法的目的是计算并返回这两个集合的交集的大小

                //即这两个集合中共有的元素的数量。

                ans += (long) (setA.size() - intersect) * (setB.size() - intersect);

            }

        }

        return ans;

    }

    public int getIntersectSize(Set<String> a, Set<String> b) {

        int ans = 0;

        for (String s : a) {

            if (b.contains(s)) {

                ans++;

            }

        }

        return ans;

    }

}


 

//想想可以边做循环边判断吗?

//如果两个候选名字拥有同样的首字母

//那么他们一定无法得到有效的公司名字

//如果两个候选名字拥有不同的首字母,那么他们可能得到有效的公司名字

//假设现在一共有如下几个单词:

//Aa Ab Ac Ba Bb Bc

//names[preA]=Aa Ab Ac Ad Af

//names[preB]=Ba Bb Bc Bx Br

//

 

相关文章:

力扣每日一题 2306.公司命名

做题过程中使用到的java语法&#xff1a; 1.从一个字符串中取出一部分字符串&#xff1a; String str "Hello, World!"; String part str.substring(7); // 从索引7开始到字符串末尾 System.out.println(part); // 输出: World! class Solution { public lo…...

HTML-DOM模型

1.DOM模型 window对象下的document对象就是DOM模型。 DOM描绘了一个层次化的节点树&#xff0c;每一个节点就是一个html标签&#xff0c;而且每一个节点也是一个DOM对象。 2.操作DOM 2.1.获取DOM对象常用方法 获取DOM对象的常用方法有如下几种&#xff1a; getElementById(…...

vue项目报错: At least one is required in a single file component.的主要原因及解决办法

本篇文章主要讲解 vue项目报错&#xff1a; At least one is required in a single file component.的主要原因及解决办法 作者&#xff1a;任聪聪 日期&#xff1a;2024年9月25日 报文信息&#xff1a; Compiled with problems: ERROR in ./src/xxxx.vue Module Error (from …...

03DSP学习-利用syscfg配置IO

上一篇博客介绍了syscfg&#xff0c;对syscfg有了初步的了解&#xff0c;但是在真正使用上它之前&#xff0c;还不能理解他是一个神器。 (在写博客的时候&#xff0c;我是在从头到尾重新完成这个步骤&#xff0c;希望对初学者有点帮助) 找到Board Component 打开syscfg文件&…...

web - RequestResponse

##Request&Response 1&#xff0c;Request和Response的概述 Request是请求对象&#xff0c;Response是响应对象。这两个对象在我们使用Servlet的时候有看到&#xff1a; 此时&#xff0c;我们就需要思考一个问题request和response这两个参数的作用是什么? request:获取请…...

个人文章汇总

文章模块文章汇总心得&资料 真正优秀的人&#xff0c;更懂得尊重别人 如何用沟通解决80%的工作问题 一个IT青年北漂四年的感悟 史上最污技术解读 操作系统相关 操作系统基础 操作系统&#xff1a;从工厂的角度来理解进程线程操作系统&#xff1a;详述对进程和线程的认识操作…...

Java | Leetcode Java题解之第436题寻找右区间

题目&#xff1a; 题解&#xff1a; class Solution {public int[] findRightInterval(int[][] intervals) {int n intervals.length;int[][] startIntervals new int[n][2];int[][] endIntervals new int[n][2];for (int i 0; i < n; i) {startIntervals[i][0] inter…...

大模型智能体在金融公告理解领域的应用 | OPENAIGC开发者大赛高校组AI创新之星奖

在第二届拯救者杯OPENAIGC开发者大赛中&#xff0c;涌现出一批技术突出、创意卓越的作品。为了让这些优秀项目被更多人看到&#xff0c;我们特意开设了优秀作品报道专栏&#xff0c;旨在展示其独特之处和开发者的精彩故事。 无论您是技术专家还是爱好者&#xff0c;希望能带给…...

链表入门(LeetCode题目)

来源&#xff1a;左程云算法 链表的题目我们经常是有思路但是实现起来总有些小问题&#xff0c;所以是准备笔试应多加练习的一类题 206. 反转链表 这道题我们可以新开链表来存&#xff0c;但是如果面试中有这道题&#xff0c;面试官让你优化又该如何呢&#xff1f;所以我们采…...

kibana开启访问登录认证

编辑es配置文件&#xff0c;添加以下内容开启es认证 vim /etc/elasticsearch/elasticsearch.yml http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-headers: Authorization xpack.security.enabled: true xpack.security.transport.ssl.enable…...

Java 14Java 15新特性概述

一、Java 14 发布于2020年3月17日。Java 14主要新特性如下&#xff1a; JEP 305&#xff1a;Pattern Matching for instanceof (Preview)instanceof 的模式匹配&#xff08;预览&#xff09; JEP 358&#xff1a;Helpful NullPointerExceptions 有用的 NullPointerExceptions…...

流量特征随机ua修改

作为一个蓝队吗喽&#xff0c;总是能看见因为ua头特征而直接被拦截的ip,当然了还有些是通过X-Forwarded-For被拦截的(X-Forwarded-For:fofa.info&#xff0c;不拦你才怪)&#xff0c; 主要是通过python的mitmproxy和fake_useragent两个模块进行实现&#xff0c;代码量极低 fr…...

CSP-S 2024 提高级 第一轮(初赛) 阅读程序(3)

【题目】 CSP-S 2024 提高级 第一轮&#xff08;初赛&#xff09; 阅读程序&#xff08;3&#xff09; 1 #include <iostream> 2 #include <cstring> 3 #include <algorithm> 4 using namespace std; 5 6 const int maxn 1000000 5; 7 const int P1 998…...

如何在 Rust 中通过 Rumqttc 实现 MQTT 通信

Rust 简介 Rust 是一门系统级编程语言&#xff0c;以其卓越的性能、并发能力以及内存安全特性著称。Rust 由 Mozilla 推出&#xff0c;目标是在现代软件开发中提供一种安全高效的编程语言。其设计旨在提供安全、并发和高效的编程体验&#xff0c;同时保持开发效率和代码质量不…...

广东高校建设AIGC实验室时需要注意哪几个关键点?

随着人工智能技术的飞速发展&#xff0c;特别是生成式人工智能&#xff08;AIGC&#xff09;在各行各业中的广泛应用&#xff0c;它已经成为推动新一轮科技革命和产业变革的关键力量。教育部等相关部门近年来也高度重视人工智能领域的人才培养工作&#xff0c;强调要加快推动高…...

设计模式-PIMPL 模式

PIMPL&#xff08;Pointer to IMPLementation&#xff09;&#xff0c;又称Opaque Pointer模式或编译防火墙&#xff0c;是一种在C中广泛应用的编程技术。其核心思想是将类的实现细节从公共接口中分离出来&#xff0c;通过指向实现类的指针来访问类的具体功能。这种模式在提高代…...

Docker部署MongoDB教程

嘿&#xff0c;大家好&#xff01;今天我在三丰云免费服务器上进行了一次激动人心的MongoDB部署测试。这款免费云服务器1核CPU、1G内存、10G硬盘、5M带宽&#xff0c;是不错的免费服务器选择。 首先&#xff0c;让我们简要介绍一下使用到的Docker和MongoDB软件。Docker是一个开…...

堆排序易错点

1.建堆和调整堆&#xff08;插入和删除&#xff09; 建堆和调整堆的过程是不一样的&#xff1a; 建堆 从非终端节点编号的结点开始依次建立大根堆&#xff0c;例如: 拿第2个图说&#xff0c;首先比较-1&#xff0c;7&#xff0c;从中选一个小的&#xff0c;即“-1”&#xf…...

安卓13长按电源按键直接关机 andriod13不显示关机对话框直接关机

总纲 android13 rom 开发总纲说明 文章目录 1.前言2.问题分析3.代码分析4.代码修改5.编译6.彩蛋1.前言 有些设备需要在长按电源键的时候,直接关机。不需要弹出对话框进行询问。 2.问题分析 过滤电源按键,需要在系统里面处理的话,那么我们需要熟悉android的事件分发,然后再…...

React学习笔记(四)——React 组件生命周期

目录 1. 生命周期-概览 2. 生命周期-挂载阶段 3. 生命周期-更新阶段 4. 生命周期-卸载阶段 5. setState扩展-发现问题 6. setState扩展-更多用法 7. setState扩展-异步 1. 生命周期-概览 了解react类组件生命周期整体情况 大致步骤&#xff1a; 什么是生命周期React类组…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的&#xff0c;根据Excel列的需求预估的工时直接打骨折&#xff0c;不要问我为什么&#xff0c;主要…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业&#xff0c;那宇树科技&#xff08;Unitree&#xff09;必须名列其榜。 最近&#xff0c;宇树科技的一项新变动消息在业界引发了不少关注和讨论&#xff0c;即&#xff1a; 宇树向其合作伙伴发布了一封公司名称变更函称&#xff0c;因…...

Python Einops库:深度学习中的张量操作革命

Einops&#xff08;爱因斯坦操作库&#xff09;就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库&#xff0c;用类似自然语言的表达式替代了晦涩的API调用&#xff0c;彻底改变了深度学习工程…...

Java数组Arrays操作全攻略

Arrays类的概述 Java中的Arrays类位于java.util包中&#xff0c;提供了一系列静态方法用于操作数组&#xff08;如排序、搜索、填充、比较等&#xff09;。这些方法适用于基本类型数组和对象数组。 常用成员方法及代码示例 排序&#xff08;sort&#xff09; 对数组进行升序…...

Django RBAC项目后端实战 - 03 DRF权限控制实现

项目背景 在上一篇文章中&#xff0c;我们完成了JWT认证系统的集成。本篇文章将实现基于Redis的RBAC权限控制系统&#xff0c;为系统提供细粒度的权限控制。 开发目标 实现基于Redis的权限缓存机制开发DRF权限控制类实现权限管理API配置权限白名单 前置配置 在开始开发权限…...

渗透实战PortSwigger Labs指南:自定义标签XSS和SVG XSS利用

阻止除自定义标签之外的所有标签 先输入一些标签测试&#xff0c;说是全部标签都被禁了 除了自定义的 自定义<my-tag onmouseoveralert(xss)> <my-tag idx onfocusalert(document.cookie) tabindex1> onfocus 当元素获得焦点时&#xff08;如通过点击或键盘导航&…...

02-性能方案设计

需求分析与测试设计 根据具体的性能测试需求&#xff0c;确定测试类型&#xff0c;以及压测的模块(web/mysql/redis/系统整体)前期要与相关人员充分沟通&#xff0c;初步确定压测方案及具体的性能指标QA完成性能测试设计后&#xff0c;需产出测试方案文档发送邮件到项目组&…...