给定两个由小写字母组成的字符串 s1
和 s2
,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。
示例 1:
输入:s1
= "abc",s2
= "bca" 输出: true
示例 2:
输入:s1
= "abc",s2
= "bad" 输出: false
说明:
0 <= len(s1) <= 100
0 <= len(s2) <= 100
-
public class Solution { public bool CheckPermutation(string s1, string s2) { Dictionary<char,int> dic = new Dictionary<char,int>(); Dictionary<char,int> dic2 = new Dictionary<char,int>(); foreach(var item in s1){ if(!dic.ContainsKey(item)) dic.Add(item,0); dic[item]++; } foreach(var item in s2){ if(!dic2.ContainsKey(item)) dic2.Add(item,0); dic2[item]++; } foreach(var item in dic) if(!dic2.ContainsKey(item.Key) || dic2[item.Key] != item.Value) return false; foreach(var item in dic2) if(!dic.ContainsKey(item.Key) || dic[item.Key] != item.Value) return false; return true; } }
public bool CheckPermutation(string s1, string s2) { Dictionary<char,int> dic = new Dictionary<char,int>(); foreach(var item in s1){ if(!dic.ContainsKey(item)) dic.Add(item,0); dic[item]++; } foreach(var item in s2){ if(!dic.ContainsKey(item)) return false; dic[item]--; } foreach(var item in dic) if(item.Value != 0) return false; return true; } }