判断两个字符串是否为变形词
题目描述
给定两个字符串str1和str2,如果str1和str2中出现的字符种类出现的一样且每种字符出现的次数也一样,那么str1和str2互为变形词。请判断str1和str2是否为变形词。
输入描述:
输入包括3行,第一行包含两个整数n,m(1≤n,m≤105) 分别代表str1和str2的长度,第二行和第三行为两个字符串,分别代表str1和str2。
输出描述:
如果str1和str2互为变形词,请输出“true”,否则输出“false”。
备注:
时间复杂度O(n),空间复杂度O(n)。
题解
import java.util.*;
public class Main{
public static void main(String[] agrs){
Scanner sc= new Scanner(System.in);
int n=sc.nextInt();
int m=sc.nextInt();
String str1=sc.next();
String str2=sc.next();
if(str1.equals(null)||str2.equals(null)||str1.length()!=str2.length()){
System.out.println(false);
}
else{
char[] ch1=str1.toCharArray();
char[] ch2=str2.toCharArray();
int[] count=new int[256];
for(int i=0;i<ch1.length;i++){
count[ch1[i]]++;
}
for(int i=0;i<ch2.length;i++){
//count[ch2[i]]--;
if(count[ch2[i]]--==0) System.out.println(false);
}
System.out.println(true);
}
}
}