1.题目:
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
2.代码:
class Solution {
public boolean isAnagram(String s, String t) {
//1. 首先判断传入的两个字符串长度是否相等,不相等的绝对不会是字母异位词
if (s.length()!=t.length())
return false;
//2.定义一个数组,用来记录每一个字符出现的次数
int[] count = new int[26];
//3. 对字符串s,t中的每一个字符进行遍历,遍历s时,出现的字符-‘a’对应的就是数字
for (int i=0;i<s.length();i++){
count[s.charAt(i)-'a']++;
count[t.charAt(i)-'a']--;
}
//4. 如果一个+,一个-后,count数组中的值都为0,返回true
for (int j= 0 ;j<count.length;j++){
if (count[j]!=0)
return false;
}
return true;
}
}
3.详解:
4.拓展:
长度或大小
-
获取数组长度:arr .length
-
获取字符串长度:arr .length()
-
获取集合的大小: arr.size()
字符串常用操作 eg:String str = "abca-g"
-
返回指定索引处的值: str.charAt(index);
-
测试此字符串是否以指定的后缀结尾:str.endsWith("-g"); //true
-
将此字符串与指定的字符串比较(忽略大小写): str.equalsIgnoreCase("Abca-G"); //true
-
使用指定的编码格式将字符串转化为一个字节数组bytes[]: byte[] bytes = str.getBytes("utf-8");
-
如果不带参数,就是使用平台默认的编码格式
-
-
返回指定字符第一次出现的索引值: str.indexOf('a');//0
-
返回指定字符最后一次出现的索引值: str.lastIndexOf('a'); //3
-
将字符串以指定的方式分割:
String str = "abca-g" String[] str1 = str.split("-"); //用-分割 System.out.println(str1[0]); //abca System.out.println(str1[1]); //g
-
将字符串中的小写字符转大写:str.toUpperCase(); //ABCA-G
-
将某类型的变量转换成字符串:
char[] chs = {'a','b','c'}; System.out.println(String.valueOf(chs)); //abc