karanpsingh86
BAN USERvoid printMatch(String str, ArrayList<String> dict)
{
if(str == null || dict.size() <=0)
return;
String encodedStr = encodeString(str);
for(String match : dict)
{
if (str.length() != match.length())
continue;
String encodedMatch = encodeString(match);
if(encodedStr.Equals(encodedMatch));
print match;
}
return;
}
String encodeString(string str)
{
// We are encoding acc = > 122 , toot => 1221
// acca = 1221 = toot = 1221
// This stores the char and the first occurance in the string
HashTable<char, int> ht = new HashTable<char, int> ();
char[] arr = str.ToCharArray();
for(int i=0 ; i < arr.length; i++)
{
if(ht.ContainsKey(arr[i]))
continue;
ht.put(arr[i], i+1);
}
StringBuilder sb = new StringBuilder();
for(int i=0 ; i < arr.length; i++)
{
sb.Append(ht.get(arr[i]).ToString());
}
return sb.ToString();
}
- karanpsingh86 September 23, 2016