When people search at Google, they often type two words without space. For example, instead of typing "binary tree", someone can type "binarytree". Given an input, what is a good way of finding if it is a combination of two valid words e.g. In Directly You have Add Space between two such or if are using some data structure , whene words would have been inserted , you would have mainted a boolen varible to defined the end of word (eod)
An Exanmple Will be Let's say you have a phrase without any spaces - eg. "thisisawesome". Given a dictionary, how would you add spaces in this string?
Another Good Working Code You Can Refer Avinash Solution
Time Complexity O(K) k is length of input string
An Exanmple Will be Let's say you have a phrase without any spaces - eg. "thisisawesome". Given a dictionary, how would you add spaces in this string?
When people search at Google, they often type two words without space. For example, instead of typing "binary tree", someone can type "binarytree". Given an input, what is a good way of finding if it is a combination of two valid words e.g. In Directly You have Add Space between two such or if are using some data structure , where words would have been inserted , you would have maintained a boolean variable to defined the end of word (eod)
An Example Will be Let's say you have a phrase without any spaces - eg. "thisisawesome". Given a dictionary, how would you add spaces in this string?
An Example Will be Let's say you have a phrase without any spaces - eg. "thisisawesome". Given a dictionary, how would you add spaces in this string?
Trie trie = new Trie();
trie.insert("i");
trie.insert("this");
trie.insert("saw");
trie.insert("is");
trie.insert("a");
trie.insert("some");
trie.insert("awesome");
trie.insert("i");
trie.insert("this");
trie.insert("saw");
trie.insert("is");
trie.insert("a");
trie.insert("some");
trie.insert("awesome");
String inputString = "thisisawesome";
String outputString = "";
int left = 0;
int right = 1;
String outputString = "";
int left = 0;
int right = 1;
while ( right <= inputString.length())
{
{
String str = inputString.substring(left,right);
boolean found = trie.containsKey(str);
if ( found)
{
String str = inputString.substring(left,right);
boolean found = trie.containsKey(str);
if ( found)
{
outputString += str;
outputString += " ";
left += str.length();
right = left + 1;
}
outputString += str;
outputString += " ";
left += str.length();
right = left + 1;
}
else
{
right++;
}
}
}
right++;
}
}
}
Another Good Working Code You Can Refer Avinash Solution
Time Complexity O(K) k is length of input string