leetCode 242.有效的字符异位词
Posted 诗萧尘
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetCode 242.有效的字符异位词相关的知识,希望对你有一定的参考价值。
题目:给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。
说明:你可以假设字符串只包含小写字母。
示例1:
输入: s = “anagram”, t = “nagaram”
输出: true
示例2:
输入: s= “rat”, t=“car”
输出:false
分析:
1 字母异位词:
字符长度相等。
字符中各个字母的数量一致。
2 英文字符小写:
共有26个,以字母为下标为 array[a]…array[z]转换 26 个字母对应下标 0~25
3 比较s 和 t :
a. 分别统计 s,t 中各字母数量。比较 是否一致
b.数组array统计s中的字母数量,减去t中的字母数量,判断array 中各项是否为0;
伪代码:
//判断长度是否一致
// 统计 s, t
// 判断数组
代码实现:
/**
* 求解两个字符的异位词
* @param t
* @param s
* @return
*/
public static boolean ArrayYw(String t,String s)
boolean flag =true;
String EnglistChar="abcdefghijklmnopqrstuvwxyz";
int [] charNum=new int[26];
char[] tarr=t.toCharArray();
char[] sarr=s.toCharArray();
if(tarr.length!=sarr.length)
return false;
for (char i:tarr)
charNum[EnglistChar.indexOf(i)]+=1;
for (char i:sarr)
charNum[EnglistChar.indexOf(i)]-=1;
for (int m :charNum)
if(m!=0)
flag=false;
break;
return flag;
调用代码:
public static void main(String[] args)
String t="anagrlam";
String s="nagaraml";
Long currTime=System.currentTimeMillis();
boolean m= ArrayYw(t,s);
System.out.println(System.currentTimeMillis() -currTime);
System.out.println(m);
String t1="rat";
String s1="car";
boolean m1= ArrayYw(t1,s1);
System.out.println(m1);
以上是关于leetCode 242.有效的字符异位词的主要内容,如果未能解决你的问题,请参考以下文章