Implement an algorithm that takes two strings as input, and returns the intersection of the two, with each letter represented at most once.
Algo: (considering language used will be c#)
- Convert both strings into char array
- take the smaller array and generate a hash table for it with key as the character and value 0
- Now Loop through the other array and increment the count in hash table if that char is present in it.
- Now take out all char for hash table whose value is > 0.
- These are intersection values.
This is an O(n), solution but is uses extra space, 2 char arrays and a hash table
Can you guys think of better solution than this?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…