Write a program that breaks up a string of words with no spaces into a string with appropiate spaces.
- Consider an example that’s rich enough but no tedious:
- “fastman” –> “fast man”
- Consider an empty string or null
- The words come from custom dictionary
Solution
class Fastman {
  def dictionary = ["fast","fat","man","strong"]
  private String find(String string){
    String result = ''
    if(string?.length() > 0){
      for(int i=0;i<string.length()-1;i++){
        for(int j=string.length();j!=i;j--){
          if(dictionary.contains(string.substring(i,j))){
            result += "${string.substring(i,j)} "
          }
        }
      }
      result
    }
  }
  static void main(String[] args){
    Fastman fastman = new Fastman()
    String result = fastman.find('fastman')
    assert 'fast man' == result.trim()
  }
}
To run the project:
groovy Fastman.groovy
To download the code:
git clone https://github.com/josdem/algorithms-workshop.git
cd fastman-problem