KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Here is the scenario, Given a word remove a single character from a word in every step such that the reduced word is still a word in dictionary. Continue till no characters are left. Here is the catch: You need to remove the right character, for eg. in a word there may be two possible characters which could be removed and both may cause the reduced word to be a valid word, but at a later stage one may get reduced to the end i.e. no characters left while the other may hang up. Example: planet plant pant pan an a OR planet plane lane not possible further, suppose lan is not a word. hope you got the idea. Please see my code, im using recursion, but would like to know if there are better efficient solutions to do the same. public class isMashable { static void initiate(String s) { mash("", s); } static void mash(String prefix, String s) { int N = s.length(); String subs = ""; if (!((s.trim()).equals(""))) System.out.println(s); for (int i = 0 ; i < N ; i++) { subs = s.substring(0, i) + s.substring(i+1, N); if (subs.equals("abc")||subs.equals("bc")||subs.equals("c")||subs.equals("a")) // check in dictionary here mash("" + s.charAt(i), subs); } } public static void main(String[] args) { String s = "abc"; initiate(s); } }
Tags (comma-separated)
Save Edits
Cancel