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

LeetCode150道面试经典题-- 有效的字母异位词(简单)

1.题目

给定两个字符串 st ,编写一个函数来判断 t 是否是 s 的字母异位词。

注意:若 st 中每个字符出现的次数都相同,则称 st 互为字母异位词。

2.示例

s="adasd"

t="daads"

返回true

s="addad"

t ="adddt"

返回true

提示:

  • 1 <= s.length, t.length <= 5 * 104
  • st 仅包含小写字母

3.思路

统计字符:
首先可以通过统计两者的每一个字符出现的次数进行统计,然后通过遍历两者26个字母判断是否都能相等,如果都能相等则返回true否则为false

4.代码

LeetCode代码:

class Solution {public boolean isAnagram(String s, String t) {int count_s[] = new int[26];int count_t[] = new int[26];for (char s_index:s.toCharArray()) {count_s[s_index-'a']++;}for (char t_index:t.toCharArray()) {count_t[t_index-'a']++;}for (int i=0;i<26;i++){if (count_s[i]!=count_t[i]){return false;}}return true;}
}

 可以看到内存管理并不理想,所以可以尝试将两个数组结合起来变成一个数组,即为累加数组,在s数组中累加,在t数组中累减。最后通过数组内的元素是否有不为0的元素来判断返回值

改良后代码:
 

class Solution {public boolean isAnagram(String s, String t) {int sum[] = new int[26];for (char s_index:s.toCharArray()) {sum[s_index-'a']++;}for (char t_index:t.toCharArray()) {sum[t_index-'a']--;}for (int i=0;i< sum.length;i++){if (sum[i]!=0){return false;}}return true;}
}

详细案例代码:

package LeetCode15_1;public class javaDemo {public static void main(String[] args) {String s = "rat";String t = "car";boolean flag = false;
//        创建唯一累加数组int sum[] = new int[26];
//        遍历s,统计s所有字母的出现次数for (char s_index:s.toCharArray()) {sum[s_index-'a']++;}
//        遍历t,减去t所有字母出现的次数for (char t_index:t.toCharArray()) {sum[t_index-'a']--;}
//        如果两者出现次数都一样,那么数组元素应该全是0for (int i=0;i< sum.length;i++){if (sum[i]!=0){flag = false;break;}}System.out.println(flag);}
}

 会了?试试挑战下一题!♪(^∀^●)ノシ (●´∀`)♪

LeetCode150道面试经典题-- 两数之和(简单)_Alphamilk的博客-CSDN博客

http://www.lryc.cn/news/128915.html

相关文章:

  • 前端与人工智能
  • 神经网络基础-神经网络补充概念-14-逻辑回归中损失函数的解释
  • UG NX二次开发(C++)-PK函数创建一条圆弧曲线
  • AndroidStudio中修改打包生成的apk名称
  • 多个springboot整合使用rabbitmq(使用注解的方式)
  • 《Effective C++中文版,第三版》读书笔记2
  • 虫情测报系统的工作原理及功能优势
  • UWB定位技术详细介绍
  • PiplineADC学习一:
  • Linux elasticsearch设置为开机自启动服务
  • WinForm内嵌Unity3D
  • 关于vue中v-for绑定数据重新渲染的问题
  • 全面解析 Axios 请求库的基本使用方法
  • rust踩雷笔记3——生命周期的理解
  • windows权限维持—黄金白银票据隐藏用户远控RustDeskGotoHttp
  • vscode conda activate激活环境出错
  • 信息与通信工程面试准备——数学知识|正态分布|中心极限定理
  • Mybatis多表查询与动态SQL的使用
  • url 和 uri 有什么区别?
  • HCIP VLAN实验
  • 无涯教程-Perl - waitpid函数
  • Redis之缓存雪崩、缓存击穿、缓存穿透问题
  • 九五从零开始的运维之路(其三十五)
  • 5G科技防汛,助力守护一方平安
  • 用easyui DataGrid编辑树形资料
  • Azure存储账户
  • 数字人服装布料解算技术服务,让数字人驱动更真实
  • 达梦数据库安装与初始化超详细教程
  • vue输入框只能输入数字类型,禁止输入和粘贴e
  • 金盘 微信管理平台 getsysteminfo 未授权访问漏洞[2023-HW]