#region Word Pattern
//Given a pattern and a string str, find if str follows the same pattern.
//Here follow means a full match, such that there is a bijection between a letter in pattern and a non-empty word in str.
//Examples:
//pattern = "abba", str = "dog cat cat dog" should return true.
//pattern = "abba", str = "dog cat cat fish" should return false.
//pattern = "aaaa", str = "dog cat cat dog" should return false.
//pattern = "abba", str = "dog dog dog dog" should return false.
//Notes:
//You may assume pattern contains only lowercase letters, and str contains lowercase letters separated by a single space.
public bool WordPattern(string pattern, string str)
{
String[] words = str.Split(' ');
if (words.Length != pattern.Length)
return false;
Dictionary<string, string> dictionary = new Dictionary<string, string>();
for (int i = 0; i < pattern.Length; i++)
{
if (!dictionary.ContainsKey(pattern[i].ToString()) && !dictionary.ContainsValue(words[i]))
{
dictionary.Add(pattern[i].ToString(), words[i]);
continue;
}
if (!dictionary.TryGetValue(pattern[i].ToString(), out string value))
{
return false;
}
else if(value != words[i])
{
return false;
}
}
return true;
}
#endregion
LeetCode-290-Word Pattern
最新推荐文章于 2021-09-27 07:46:20 发布