Problem statement:
Difficulty: Moderate
This problem solving gets hot. Julia found something she struggled a lot. When Julia spent more than 2 hours on a problem in the Saturday evening, she knew that she is in trouble. She needs to be trained, and she needs a mentor.
Solution to study:
https://gist.github.com/jianminchen/68453786a6ea03774a16
Julia, you should warm up with C# Dictionary<string, int>, and also StringBuilder class, AppendFormat function.
Let us review how to design anagram key more efficient, more understandable way:
/*
Think about how smart and easy it is to design this key for anagram string.
Precondition:
if two strings are anagram, the key should be same.
if two strings are not anagram, the key should be different.
Test case:
ab, the key is {0}-1{1}-1
ba, the key is {0}-1{1}-1,
but
bc, the key is {0}-0{1}-1{2}-1
compare to the design of anagram key using integer, this one is much easy to understand and follow.
http://juliachencoding.blogspot.ca/2016/03/hackerrank-string-sherlock-and-anagrams.html
*/
static string GiveKey(int[] arr){ StringBuilder sb = new StringBuilder(); for(int i = 0 ; i < 26 ; i++){ sb.AppendFormat("{0}-",arr[i]); } return sb.ToString(); }
No comments:
Post a Comment