Skip to main content

Word Break Problem

Here given code implementation process.

// C Program
// Word Break Problem
#include <iostream>
#include <string.h>
using namespace std;

//Perform the word break of given collection and string
void word_break(const char *collection[], int size, string str, string output)
{
	if (str.size() == 0)
	{
		//When we get result
		cout << output << endl;
	}
	else
	{
		//Loop controlling variable
		int i = 1;
		int j = 0;
		for (i; i <= str.size(); i++)
		{
			// Get all prefixes of current string
			string prefix = str.substr(0, i);
			// Check that given collection are exist prefix or not
			for (j = 0; j < size; ++j)
			{
				//
				string temp = collection[j];
				if (temp.compare(prefix) == 0)
				{
					//Recursively execute function 
					word_break(collection, size, str.substr(i), output + " " + prefix);
				}
			}
		}
	}
}
int main()
{
	//Define collection of text
	const char *collection[] = {
		"t" , "ime" , "to" , "code" , "hi" , "s" , "o" , "w" , "r" , "time" , "i" , "e" , "life" , "co" , "de" , "write"
	};
	//Get the size of collection element
	int size = sizeof(collection) / sizeof(collection[0]);
	//Define string
	string word = "timetowritecode";
	word_break(collection, size, word, "");
	return 0;
}

Output

 t ime t o w r i t e co de
 t ime t o w r i t e code
 t ime t o write co de
 t ime t o write code
 t ime to w r i t e co de
 t ime to w r i t e code
 t ime to write co de
 t ime to write code
 time t o w r i t e co de
 time t o w r i t e code
 time t o write co de
 time t o write code
 time to w r i t e co de
 time to w r i t e code
 time to write co de
 time to write code
// Java program
// Word Break Problem
class WordBreak
{
	//Perform the word break of given collection and string
	public void word_break(String []collection, String text, String output)
	{
		if (text.length() == 0)
		{
			//When we get result
			System.out.print("\n"+output);
		}
		else
		{
			//Loop controlling variable
			int i = 0;
			int j = 0;
          
			String prefix = "";
          
			for (i=1; i <= text.length(); i++)
			{
				// Get all prefixes of current string
				prefix = text.substring(0, i);
				// Check that given collection are exist prefix or not
				for (j = 0; j < collection.length; ++j)
				{
					if (collection[j].equals(prefix))
					{
						//Recursively execute function 
						word_break(collection, text.substring(i), output + " " + prefix);
					}
				}
			}
		}
	}
	public static void main(String[] args)
	{
      	WordBreak obj = new WordBreak();
		//Define collection of text
		String[] collection = {
			"t",
			"ime",
			"to",
			"code",
			"hi",
			"s",
			"o",
			"w",
			"r",
			"time",
			"i",
			"e",
			"life",
			"co",
			"de",
			"write"
		};
		//Define string
		String word = "timetowritecode";
		obj.word_break(collection, word, "");
	
	}
}

Output

 t ime t o w r i t e co de
 t ime t o w r i t e code
 t ime t o write co de
 t ime t o write code
 t ime to w r i t e co de
 t ime to w r i t e code
 t ime to write co de
 t ime to write code
 time t o w r i t e co de
 time t o w r i t e code
 time t o write co de
 time t o write code
 time to w r i t e co de
 time to w r i t e code
 time to write co de
 time to write code
//Include namespace system
using System;
// C# program
// Word Break Problem
class WordBreak
{
	//Perform the word break of given collection and string
	public void word_break(String[] collection, String text, String output)
	{
		if (text.Length == 0)
		{
			//When we get result
			Console.Write("\n" + output);
		}
		else
		{
			//Loop controlling variable
			int i = 0;
			int j = 0;
			String prefix = "";
			for (i = 1; i <= text.Length; i++)
			{
				// Get all prefixes of current string
				prefix = text.Substring(0, i);
				// Check that given collection are exist prefix or not
				for (j = 0; j < collection.Length; ++j)
				{
					if (collection[j].Equals(prefix))
					{
						//Recursively execute function 
						word_break(collection, text.Substring(i), output + " " + prefix);
					}
				}
			}
		}
	}
	public static void Main(String[] args)
	{
		WordBreak obj = new WordBreak();
		//Define collection of text
		String[] collection = {
			"t" , "ime" , "to" , "code" , "hi" , "s" , "o" , "w" , "r" , "time" , "i" , "e" , "life" , "co" , "de" , "write"
		};
		//Define string
		String word = "timetowritecode";
		obj.word_break(collection, word, "");
	}
}

Output

 t ime t o w r i t e co de
 t ime t o w r i t e code
 t ime t o write co de
 t ime t o write code
 t ime to w r i t e co de
 t ime to w r i t e code
 t ime to write co de
 t ime to write code
 time t o w r i t e co de
 time t o w r i t e code
 time t o write co de
 time t o write code
 time to w r i t e co de
 time to w r i t e code
 time to write co de
 time to write code
<?php
// Php program
// Word Break Problem
class WordBreak
{
	//Perform the word break of given collection and string
	public	function word_break( & $collection, $text, $output)
	{
		if (strlen($text) == 0)
		{
			//When we get result
			echo "\n". $output;
		}
		else
		{
			//Loop controlling variable
			$i = 0;
			$j = 0;
			$prefix = "";
			for ($i = 1; $i <= strlen($text); $i++)
			{
				// Get all prefixes of current string
				$prefix = substr($text,0, $i);
				// Check that given collection are exist prefix or not
				for ($j = 0; $j < count($collection); ++$j)
				{
					if ($collection[$j]==($prefix))
					{
						//Recursively execute function 
						$this->word_break($collection, substr($text,$i), $output ." ". $prefix);
					}
				}
			}
		}
	}
}

function main()
{
	$obj = new WordBreak();
	//Define collection of text
	$collection = array("t", "ime", "to", "code", "hi", "s", "o", "w", "r", "time", "i", "e", "life", "co", "de", "write");
	//Define string
	$word = "timetowritecode";
	$obj->word_break($collection, $word, "");
}
main();

Output

 t ime t o w r i t e co de
 t ime t o w r i t e code
 t ime t o write co de
 t ime t o write code
 t ime to w r i t e co de
 t ime to w r i t e code
 t ime to write co de
 t ime to write code
 time t o w r i t e co de
 time t o w r i t e code
 time t o write co de
 time t o write code
 time to w r i t e co de
 time to w r i t e code
 time to write co de
 time to write code
// Node Js program
// Word Break Problem
class WordBreak
{
	//Perform the word break of given collection and string
	word_break(collection, text, output)
	{
		if (text.length == 0)
		{
			//When we get result
			console.log(output);
		}
		else
		{
			//Loop controlling variable
			var i = 0;
			var j = 0;
			var prefix = "";
			for (i = 1; i <= text.length; i++)
			{
				// Get all prefixes of current string
				prefix = text.substring(0, i);
				// Check that given collection are exist prefix or not
				for (j = 0; j < collection.length; ++j)
				{
					if (collection[j]==(prefix))
					{
						//Recursively execute function 
						this.word_break(collection, text.substring(i), output + " " + prefix);
					}
				}
			}
		}
	}
}

function main()
{
	var obj = new WordBreak();
	//Define collection of text
	var collection = ["t", "ime", "to", "code", "hi", "s", "o", "w", "r", "time", "i", "e", "life", "co", "de", "write"];
	//Define string
	var word = "timetowritecode";
	obj.word_break(collection, word, "");
}
main();

Output

 t ime t o w r i t e co de
 t ime t o w r i t e code
 t ime t o write co de
 t ime t o write code
 t ime to w r i t e co de
 t ime to w r i t e code
 t ime to write co de
 t ime to write code
 time t o w r i t e co de
 time t o w r i t e code
 time t o write co de
 time t o write code
 time to w r i t e co de
 time to w r i t e code
 time to write co de
 time to write code
#  Python 3 program
#  Word Break Problem
class WordBreak :
	# Perform the word break of given collection and string
	def word_break(self, collection, text, output) :
		if (len(text) == 0) :
			# When we get result
			print("\n", output, end = "")
		else :
			# Loop controlling variable
			i = 1
			j = 0
			prefix = ""
			while (i <= len(text)) :
				#  Get all prefixes of current string
				prefix = text[:i]
				#  Check that given collection are exist prefix or not
				j = 0
				while (j < len(collection)) :
					if (collection[j]==(prefix)) :
						# Recursively execute function 
						self.word_break(collection, text[i:], output +" "+ prefix)
					
					j += 1
				
				i += 1
			
		
	

def main() :
	obj = WordBreak()
	# Define collection of text
	collection = ["t", "ime", "to", "code", "hi", "s", "o", "w", "r", "time", "i", "e", "life", "co", "de", "write"]
	# Define string
	word = "timetowritecode"
	obj.word_break(collection, word, "")

if __name__ == "__main__": main()

Output

  t ime t o w r i t e co de
  t ime t o w r i t e code
  t ime t o write co de
  t ime t o write code
  t ime to w r i t e co de
  t ime to w r i t e code
  t ime to write co de
  t ime to write code
  time t o w r i t e co de
  time t o w r i t e code
  time t o write co de
  time t o write code
  time to w r i t e co de
  time to w r i t e code
  time to write co de
  time to write code
#  Ruby program
#  Word Break Problem
class WordBreak

	# Perform the word break of given collection and string
	def word_break(collection, text, output)
	
		if (text.length() == 0)
		
			# When we get result
			print("\n", output)
		else
		
			# Loop controlling variable
			i = 1
			j = 0
			prefix = ""
			while (i <= text.length())
			
				#  Get all prefixes of current string
				prefix = text[0, i]
				#  Check that given collection are exist prefix or not
				j = 0
				while (j < collection.length)
				
					if (collection[j]==(prefix))
					
						# Recursively execute function 
						self.word_break(collection, text[i..text.length], output +" "+ prefix)
					end
					j += 1
				end
				i += 1
			end
		end
	end
end
def main()

	obj = WordBreak.new()
	# Define collection of text
	collection = ["t", "ime", "to", "code", "hi", "s", "o", "w", "r", "time", "i", "e", "life", "co", "de", "write"]
	# Define string
	word = "timetowritecode"
	obj.word_break(collection, word, "")
end
main()

Output

 t ime t o w r i t e co de
 t ime t o w r i t e code
 t ime t o write co de
 t ime t o write code
 t ime to w r i t e co de
 t ime to w r i t e code
 t ime to write co de
 t ime to write code
 time t o w r i t e co de
 time t o w r i t e code
 time t o write co de
 time t o write code
 time to w r i t e co de
 time to w r i t e code
 time to write co de
 time to write code
// Scala program
// Word Break Problem
class WordBreak
{
	//Perform the word break of given collection and string
	def word_break(collection: Array[String], text: String, output: String): Unit = {
		if (text.length() == 0)
		{
			//When we get result
			print("\n" + output);
		}
		else
		{
			//Loop controlling variable
			var i: Int = 1;
			var j: Int = 0;
			var prefix: String = "";
			while (i <= text.length())
			{
				// Get all prefixes of current string
				prefix = text.substring(0, i);
				// Check that given collection are exist prefix or not
				j = 0;
				while (j < collection.length)
				{
					if (collection(j).equals(prefix))
					{
						//Recursively execute function 
						word_break(collection, text.substring(i), output + " " + prefix);
					}
					j += 1;
				}
				i += 1;
			}
		}
	}
}
object Main
{
	def main(args: Array[String]): Unit = {
		var obj: WordBreak = new WordBreak();
		//Define collection of text
		var collection: Array[String] = Array("t", "ime", "to", "code", "hi", "s", "o", "w", "r", "time", "i", "e", "life", "co", "de", "write");
		//Define string
		var word: String = "timetowritecode";
		obj.word_break(collection, word, "");
	}
}

Output

 t ime t o w r i t e co de
 t ime t o w r i t e code
 t ime t o write co de
 t ime t o write code
 t ime to w r i t e co de
 t ime to w r i t e code
 t ime to write co de
 t ime to write code
 time t o w r i t e co de
 time t o w r i t e code
 time t o write co de
 time t o write code
 time to w r i t e co de
 time to w r i t e code
 time to write co de
 time to write code
// Swift program
// Word Break Problem
import Foundation

class WordBreak
{
  	func get_prefix(_ text: [Character],_ size : Int) -> String
    {
      	var result : String = "";
      	var i = 0;
      	while(i<size)
        {
          	result += String(text[i]);
          	i = i+1;
        }
      	return result;
    }	
  	func get_suffix(_ text : [Character],_ start : Int,_ size : Int) -> String
    {
      	var result : String = "";
      	var i = start;
      	while(i<size)
        {
          	result += String(text[i]);
          	i = i+1;
        }
      	return result;
    }	
	//Perform the word break of given collection and string
	func word_break(_ collection: [String], _ text: String, _ output: String)
	{
		if (text.count == 0)
		{
			//When we get result
			print( output, terminator: "\n");
		}
		else
		{
			//Loop controlling variable
			var i: Int = 1;
			var j: Int = 0;
			var prefix: String = "";
          	let data = Array(text);
			while (i <= text.count)
			{
				// Get all prefixes of current string
				prefix = get_prefix(data,i)
				// Check that given collection are exist prefix or not
				j = 0;
				while (j < collection.count)
				{
					if (collection[j]==(prefix))
					{
						//Recursively execute function 
						self.word_break(collection, get_suffix(data,i,data.count), output + " " + prefix);
					}
					j += 1;
				}
				i += 1;
			}
		}
	}
}
func main()
{
	let obj: WordBreak = WordBreak();
	//Define collection of text
	let collection: [String] = ["t", "ime", "to", "code", "hi", "s", "o", "w", "r", "time", "i", "e", "life", "co", "de", "write"];
	//Define string
	let word: String = "timetowritecode";
	obj.word_break(collection, word, "");
}
main();

Output

 t ime t o w r i t e co de
 t ime t o w r i t e code
 t ime t o write co de
 t ime t o write code
 t ime to w r i t e co de
 t ime to w r i t e code
 t ime to write co de
 t ime to write code
 time t o w r i t e co de
 time t o w r i t e code
 time t o write co de
 time t o write code
 time to w r i t e co de
 time to w r i t e code
 time to write co de
 time to write code




Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment