You are given N strings or N words. You have to find whether a chain can be formed with all the strings given namely n ?
Chain : A chain can be formed between 2 strings if last character of the 1st string matches with the first character of the second string.
Example : cat ,eng, galactic, tree
These words Create chain as ... TREE,ENG,GALACTIC,CAT or CAT, TREE, ENG, GALACTIC
Try to think as its simple solution.
Logic 1)
Brute Force Approach : With each word from input string and try to create chain.
Brute Force Approach : With each word from input string and try to create chain.
example
Input : English, Yellow , Maths , Chemistry , Water , Horse
Take word "English" which ends with "H" Find another word which starts with H.
Like wise continue and if you can't find chain containing all words return "failure"
else return "true"
Logic 2)
Create Two array for Input words
Arr1 = Contains only first character of all words
Arr2 = Contains only last character of all words
Now check if all occurrence of Arr1 are part of Arr2 or not.
If they are then they create Chain else not.
Example 1)
For Input English, Yellow , Maths , Chamistry , Water , Horse
Arr1 = { e , y , m , c , w , h}
Arr2 = { h , w , s , y , r , e }
Example 2)
For Input cat ,engg, galactic, tree
Arr1 = { c , e , g , t }
Arr2 = { t , g , c , e }
Example 3) :
For Input : Apple, elephant, truck.
Also creates Chain and not ring.
Arr1 = { a , e , t }
Arr2 = { e, t , k }
Modification :
Only One character from Arr1 and one from Arr2 can be considered if only if they both are not from one word.
means here apart from 'a' of Arr1 and 'k' of Arr2 we can eliminate for occurrence count if they both are not from one word.
say words are ark, elephant, tree will also create same Arr1 and Arr2 as above Example3) but as "ark" contains both starting and ending character which doesn't meet. This Words cant create chain.
Code :
Its Very Simple code Please try at your own.
Thanks Dhaval for suggesting this Approach and article.