首页 > 编程语言 >【数据结构和算法】LeetCode,初级算法-15有效的字母异位词

【数据结构和算法】LeetCode,初级算法-15有效的字母异位词

时间:2022-10-06 22:41:07浏览次数:103  
标签:15 String int length ++ 算法 return false LeetCode


截止到目前我已经写了 600多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载
下载链接:​​https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ​提取码:6666

【数据结构和算法】LeetCode,初级算法-15有效的字母异位词_力扣



视频讲解

LeetCode,初级算法-有效的字母异位词

B站视频合集:​https://www.bilibili.com/video/BV1MZ4y1i755​



代码部分

解法一

public boolean isAnagram(String s, String t) {
if (s.length() != t.length())
return false;
int[] letterCountS = new int[26];
int[] letterCountT = new int[26];
//统计字符串s中的每个字符的数量
for (int i = 0; i < s.length(); i++)
letterCountS[s.charAt(i) - 'a']++;
//统计字符串t中的每个字符的数量
for (int i = 0; i < t.length(); i++)
letterCountT[t.charAt(i) - 'a']++;
//只要有一个字符出现的次数不同就返回false
for (int i = 0; i < 26; i++) {
if (letterCountS[i] != letterCountT[i])
return false;
}
return true;
}

解法二

public boolean isAnagram(String s, String t) {
if (s.length() != t.length())
return false;
int[] letterCount = new int[26];
//统计字符串s中的每个字符的数量
for (int i = 0; i < s.length(); i++)
letterCount[s.charAt(i) - 'a']++;
//减去字符串t中的每个字符的数量
for (int i = 0; i < t.length(); i++)
letterCount[t.charAt(i) - 'a']--;
//如果数组letterCount的每个值都是0,返回true,否则返回false
for (int count : letterCount)
if (count != 0)
return false;
return true;
}

解法三

public boolean isAnagram(String s, String t) {
if (s.length() != t.length())
return false;
char[] cs = s.toCharArray();
char[] ct = t.toCharArray();
int[] map = new int[26];
int count = 0;
for (int i = 0; i < cs.length; i++) {
// 不为0的个数
if (map[cs[i] - 'a']++ == 0) {
count++;
}
// 如果变为0了就减1
if (map[ct[i] - 'a']-- == 1) {
count--;
}
}
return count == 0;
}

解法四

public boolean isAnagram(String s, String t) {
char[] sChar = s.toCharArray();
char[] tChar = t.toCharArray();
//对两个字符串中的字符进行排序
Arrays.sort(sChar);
Arrays.sort(tChar);
return Arrays.equals(sChar, tChar);
}


标签:15,String,int,length,++,算法,return,false,LeetCode
From: https://blog.51cto.com/u_4774266/5734089

相关文章

  • 【数据结构和算法】LeetCode,初级算法-14字符串中的第一个唯一字符
    截止到目前我已经写了600多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:​​https://pan.baidu.com/s/1hjwK0ZeRxY......
  • 十大排序算法总结更新
    目录十大排序算法总结一、冒泡排序二、选择排序附录具者类也:排序算法公用(交换和比较)十大排序算法总结一、冒泡排序身世曰:冒泡排序可以誉为程序员跨入算法门槛的第一步......
  • LeetCode(剑指 Offer)- 61. 扑克牌中的顺子
    题目链接:​​点击打开链接​​题目大意:略解题思路相关企业字节跳动AC代码Java//解决方案(1)classSolution{publicbooleanisStraight(int[]nums){Set<In......
  • 多种PID算法用C语言来实现
    原文链接:https://blog.csdn.net/Nirvana_Tai/article/details/105409311,随后整理验证,再补充(一)前言  PID算法在工业应用中随处可见。大学期间,想做各类科创也少不了PI......
  • CF1415D XOR-gun 题解 二分答案/贪心
    题目链接https://codeforces.com/problemset/problem/1415/D题目大意给定一个长为\(n\)的不降序列,每次操作可以任选相邻的两个数,并将这两个数替换为两个数按位异或的......
  • 混音算法记录
    因项目需求实现混音效果,故学习记录了一下。算法调研常见混音方式:加和后再除以混音通道数,防止溢出加和并箝位,如有溢出就设最大值饱和处理,接近最大值时进行扭曲(“软件......
  • 算法学习笔记(数学):数论分块 + 容斥原理 + 莫比乌斯函数
    算法学习笔记(数学):数论分块+容斥原理+莫比乌斯函数这篇文章主要是要讲一道题目(链接在这里)以及梳理一下数论分块,莫比乌斯函数,容斥原理这些知识。先介绍下知识点吧qwq......
  • 人脸对齐之GBDT(ERT)算法解读
    1.概述文章名称:OneMillisecondFaceAlignmentwithanEnsembleofRegressionTrees 文章作者:VahidKazemi,JosephineSullivan 简要介绍:OneMillisecondFaceAlignme......
  • 最短路径问题---Dijkstra算法详解
    0.最短路径问题介绍问题解释:从图中的某个顶点出发到达另外一个顶点的所经过的边的权重和最小的一条路径,称为最短路径1.Dijkstra算法介绍算法特点:迪科斯彻算法使用......
  • leetcode 889. Construct Binary Tree from Preorder and Postorder Traversal 根据前
    一、题目大意给定两个整数数组,preorder和postorder,其中preorder是一个具有无重复值的二叉树的前序遍历,postorder是同一棵树的后序遍历,重构并返回二叉树。如果存......