Leetcode刷题笔录 Anagrams

Matlab系列之GUI设计基础 Matlab系列之GUI设计基础简介编辑界面菜单设计控件设计控件描述个人理解Matlab转译控件属性【1】外观与行为【2】控件对象的信息【3】回调函数【4】状态信息结束结束更多精彩,等你发现~ 简介 GUI即图形用户界面(Graphical User Interface),人机交互的一种方式,可以简化用户的操作,比如只需要点点窗口上的按键或者菜单选择等等,就可以实现一个复杂的功能,有点类似黑盒的操作吧。 本篇将主要介绍GUI的使用,以及一些功能,后续的篇章再使用GUI来设计实例。 打开GUI可以在Matla 阅读详情

Given an array of strings, return all groups of strings that are anagrams.

Note: All inputs will be in lower-case.


想法是把这个输入的String数组的每个String元素按照其字符的ASCII码的和进行分类,每一个和对应一个ArrayList<String>,这个数组包含所有字符的ASCII码和相同的String。Anagrams只可能发生在这些ArrayList内部的元素中。之后再对每一个ArrayList的元素进行暴力一对一对的比较。

注意的点:

在第36到44行,判断String s1和s2已经确定是anagram以后,要有一个boolean数组来记录这两个String是否已经被放入最终结果了。如果是,那么就不再重复放入。比如说,输入的test是["aa", "aa", "aa"],那么返回也应该是["aa", "aa", "aa"]。如果没有上面的判断的话,按照这个算法返回值会变成["aa", "aa", "aa","aa", "aa", "aa"]。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

public class Solution {
    public ArrayList<String> anagrams(String[] strs) {
        Map<Integer, ArrayList<String>> map = new HashMap<Integer, ArrayList<String>>();
        for(int i = 0; i < strs.length; i++){
            int count = 0;
            String string = strs[i];
            for(int j = 0; j < string.length(); j++){
                count += (int)string.charAt(j);
            }
            if(map.containsKey(count)){
                map.get(count).add(string);
            }
            else{
                ArrayList<String> array = new ArrayList<String>();
                array.add(string);
                map.put(count, array);
            }
        }
        
        ArrayList<String> result = new ArrayList<String>();
        Collection<ArrayList<String>> arrayCol = map.values();
        for(ArrayList<String> array : arrayCol){
            int N = array.size();
            boolean[] isAdded = new boolean[N];
            Arrays.fill(isAdded, false);
            for(int i = 0; i < N - 1; i++){
                String s1 = array.get(i);
                for(int j = i + 1; j < N; j++){
                    String s2 = array.get(j);
                    if(isAnagram(s1, s2)){
                        if(isAdded[i] == false){
                            result.add(s1);
                            isAdded[i] = true;
                        }
                        if(isAdded[j] == false){
                            result.add(s2);
                            isAdded[j] = true;
                        }                      
                    }
                }
            }
        }
		return result;
    }
    
    public boolean isAnagram(String s1, String s2){
        if(s1.length() != s2.length())  return false;
        int[] array = new int[26];
        Arrays.fill(array, 0);
        for(int i = 0; i < s1.length(); i++){
            int index1 = s1.charAt(i) - 'a';
            int index2 = s2.charAt(i) - 'a';
            array[index1] = array[index1] + 1;
            array[index2] = array[index2] - 1;
        }
        for(int i = 0; i < 26; i++){
            if(array[i] != 0) return false;
        }
        return true;
    }
}


3D视觉实战之双目相机物体尺寸实时测量 视差图滤波能够将稀疏视差转变为稠密视差,并在一定程度上降低视差图噪声,改善视差图的视觉效果,但是比较依赖初始视差图的质量。的目标是获得左右两个相机的内参、外参和畸变系数,其中内参包括左右相机的fx,fy,cx,cy,外参包括左相机相对于右相机的旋转矩阵和平移向量,畸变系数包括径向畸变系数(k1, k2,k3)和切向畸变系数(p1,p2)以及其他一些畸变类型。:相比于昂贵的专业设备,便宜的双目摄像头可以显著降低成本,使得实时点云生成技术更加普及和经济实惠。 阅读详情

相关推荐

如何区分Info与CoWoS封装?

这篇文章主要从Info、CoWoS封装的定义、Interposer的种类以及Info、CoWoS封装的种类三方面进行了介绍,希望读者能够有所收获

wangyubo1的博客 7938

编写一个Python程序来判断两个给定的字符串是否是错位词。

如果两个字符串具有相同的字符,但顺序不同,则被认为是彼此的错位词。

qq_61169089的博客 1509

大数据应用技术实验报告一 Hadoop三种模式安装配置

JDK+Hadoop安装配置、单机模式配置 以下操作在SecureCRT里面完成 1.关闭防火墙 firewall-cmd --state 显示防火墙状态running/not running systemctl stop firewalld 临时关闭防火墙,每次开机重新开启防火墙 systemctl disable firewalld 禁止防火墙服务。 2.传输JDK和HADOOP压缩包 Sec...

Ruthless_Childe的博客 3090

python错位词,计数法

编写一个Python程序来判断两个给定的字符串是否是错位词。如果两个字符串具有相同的字符,但顺序不同,则被认为是彼此的错位词。例如,restful和fluster是错位词。

2303_80432624的博客 534

计组实验之四路表决器

请在之前四路表决器电路实现的基础上,继续用连接线 联接CD4511,将投票为1的票数总和显示到一个 LED上,思考如何做?由于我们需要通过显示字形来直接看出有几个1,在这里,我们最多有四个1,即显示字形最多到4就行,所以我们需要将有几个1用2进制数来表示,下面给出了相关电路图。显示输入插口,按真值表(自拟)要求,逐次改变输入变量, 测量相应的输出值,验证逻辑功能, 与表3-1 进行比较, 验证所设计的逻辑电路是否符合要求。用实验结果与真值表3-1和3-2进行比对,可以得出,我们实验结果是正确的。

szyugly的博客 1万+

latex使用overleaf插入多行图片

对于一般的latex模板,可以使用下面方式: (1)现在模板最前面的加入包 \usepackage{graphicx} \usepackage{subfigure} (2) 使用下面代码插入图片 \begin{figure}[htbp] \centering \subfigure[pic1.]{ \includegraphics[width=5.5cm]{pic1.png} } \quad \subfigure[pic2.]{ \includegraphics[width=5.5cm]{pic

Look Forward To 1万+

PythonTip 在线编程 11~20题

【代码】PythonTip 在线编程 11~20题。

weixin_74886866的博客 476

基于BenchmarkSQL的达梦数据库TPCC性能测试

中的用户和密码在达梦数据库中创建测试用户,并保证其表空间足够容纳生成的测试数据。如果开启了归档,还要考虑归档日志占用的空间。BenchmarkSQL默认不支持达梦数据库。这里我们让BenchmarkSQL把达梦数据库当作Oracle即可。Oracle数据库对应的测试配置文件为。是使用BenchmarkSQL进行性能测试的主要配置文件。是生成的测试报告,png文件是报告中包含的图片。拷贝达梦数据库驱动到BenchmarkSQL的。测试结束后,会在当前路径下生成一个以。规则命名的结果目录。

Sebastien23的博客 2634

java字符串与基本数据_Java基础--数值和字符串

1、数值 2、字符串数值: 主要讨论使用这些类的实例化而不是基本数据类型 在格式化或者科学计数中的运用 自动装箱和自动拆箱基本数据类型对应的包装对象类型,所有的包装类型都是抽象类Number的子类 实际上Number子类有15个分别如下:值得关注的是分了四种类型:1、AtomicLong和AtomicInteger都是应用于多线程应用。 2、BigDecimal和BigInteger都是应用在高...

weixin_39967938的博客 347

【GEOS-Chem模拟教程第二期下】全球生物质燃烧 GFAS 数据配置

本博客详细介绍全球生物质燃烧 GFAS 数据下载及在 GEOS-CHEM 模型中的配置

WW、forever的博客 1394

YOLOv8独家原创改进:SPPF原创自研创新 | SPPF创新结构,重新设计全局平均池化层和全局最大池化层,增强全局视角信息和不同尺度大小的特征

SPPF_improve利用全局平均池化层和全局最大池化层,加入一些全局背景信息和边缘信息,从而获取全局视角信息并减轻不同尺度大小所带来的影响

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 4684

【Leetcode】Anagrams

Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be in lower-case. 题意:给你一个字符串数组,返回所有变位字符串的集合(变位字符串的意思是两个字符串包含的字符类型和各个字符出现的次数均相等)。 解题思路:1)对数组的每个

为梦起航 772

多思计组实验实验三、存储器读写实验

实验三、存储器读写实验

qq_53089329的博客 3651

[Leetcode] Anagrams

【题目】 Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be in lower-case. For example: Input:   [“tea”,”and”,”ate”,”eat”,”den”] Output...

十一月zz的博客 376

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【LeetCode】Anagrams 解题报告

【题目】 Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be in lower-case. 【解析】 题意:给定一个字符串数组,返回所有是“换位词”的字符串。 所谓“换位词/变位词”就是包含相同字母,但字母顺序可能不同的字符串。比

跳出温水的青蛙 2989

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Anagrams

Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be in lower-case.

Thinking 490

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

洛谷 P3742 umi的函数【构造】

题目背景(https://www.luogu.org/problemnew/show/P3742) umi 找到了一个神秘的函数 f。 题目描述 这个函数接受两个字符串 s1,s2。这些字符串只能由小写字母组成,并且具有相同的长度。这个函数的输出是另一个长度与 s1,s2 相同的字符串 g。g 的第 i 个字符等于 s1 的第i 个字符和 s2 的第 i 个字符的最小值,简单来说,g[i]=...

weixin_34013044的博客 351

[LeetCode][Java] Anagrams

题目: Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be in lower-case. 题意: 给定一个字符串数组,返回所有的易位构词组合。 注意:所有的输入都是小写。 算法分析: 易位构词其实也很好理解,就是两个单

西湖有大葱的专栏 888

[leetcode]Anagrams

Anagrams   Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be in lower-case. 题目意思

不积跬步无以至千里 598

Leetcode: Anagrams

Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be in lower-case. For example: Input:  ["tea","and","ate","eat","den"] Output:   ["tea","at

ZkvIA的博客 7803

[Leetcode]Anagram

Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be in lower-case. 先查了一下单词,意思是单词重排, abc 和 bca 是anagrams http://en.wikipedia.org/wi...

weixin_30895603的博客 167

Anagrams变位词

题目: Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be in lower-case. 思路: 字符串和在数组中的位置为映射关系,并且要判断重复性,所以选择hashmap 1、依次取出字符串数组中的每个字符串,将其转换成字符

u011401726的博客 381

[LeetCode] Anagrams solution

Given an array of strings, return all groups of strings that are anagrams. Nots:All in

程序人生 687

【LeetCode】Anagrams

Anagrams  Total Accepted: 7632 Total Submissions: 33683 My Submissions Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be in lower-case. 举例说明题目大意:

wangzq的专栏 987

LeetCode——Anagrams

Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be in lower-case. 原题链接:https://oj.leetcode.com/problems/anagrams/ 易位构词游戏的英文词汇是 anagram,这个词来源于有

三分地 2262

[LeetCode]Anagrams,解题报告

题目 Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be in lower-case. Anagrams Anagrams(回文构词法),Anagrams是由颠倒字母顺序组成的单词,比如“cat”颠倒字母顺序是“tca”

小一的专栏 5341
上一篇: Reverse A Linked List
下一篇: LeetCode刷题笔录 Reverse Integer
likecool21
博客等级 码龄14年 14粉丝 123原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值