Custom Jumble Word Game

Given a string str, the task is to print all the anagrams of the given string which forms a word that exists in English Dictionary. Note: For using dictionary words, a text file is used where all the words of the dictionary are stored. Examples:
Input: str = “tac” Output: act cat Explanation: The words can be formed from the given string “tac” are act, cat. Input: str = “atrew” Output: tawer water wreat Explanation: The words can be formed from the given string “atrew” are “tawer”, “water”, “wreat”.
Approach: The idea is to use the concept of File Handling and a text file(say words.txt) that contains all the meaningful words. Below are the steps:
- Sort the given string.
- Open the words.txt file using file handling ifstream to read the file in C++ as:
ifstream words(“words.txt”);
- For each word in the file words.txt sort the word and compare it with the given sorted string.
- If both the string matches in the above step then print the current word in the file words.txt.
- Close the file after all the words has been checked.
Below is the implementation of the above approach:
C++
// C++ program for the above approach#include <bits/stdc++.h>using namespace std;// Function that sorts the given string// and transform a sorted string to uppercasestring sortString(string word){ // Transformed to uppercase transform(word.begin(), word.end(), word.begin(), ::toupper); // Sort the words sort(word.begin(), word.end()); return word;}// Function that finds the anagram of// given string in the given text filevoid jumbledString(string jumble){ // Initialize strings string checkPerWord = ""; string userEnteredAfterSorting; // Sort the string userEnteredAfterSorting = sortString(jumble); // Using filehandling ifstream // to read the file ifstream words("words.txt"); // If file exist if (words) { // Check each and every word // of words.txt(dictionary) while (getline(words, checkPerWord)) { string Ch = sortString(checkPerWord); // If words matches if (Ch == userEnteredAfterSorting) { // Print the word cout << checkPerWord << endl; } } // Close the file words.close(); }}// Driver Codeint main(){ // Given string str string string = "tac"; // Function Call jumbledString(string); return 0;} |
Python3
import string# Function that sorts the given string# and transform a sorted string to uppercasedef sortString(word): # Transformed to uppercase word = word.upper() # Sort the words return ''.join(sorted(word))# Function that finds the anagram of# given string in the given text filedef jumbledString(jumble): # Initialize strings checkPerWord = "" userEnteredAfterSorting = "" # Sort the string userEnteredAfterSorting = sortString(jumble) # Using filehandling open # to read the file with open('words.txt') as words: # Check each and every word # of words.txt(dictionary) for checkPerWord in words: Ch = sortString(checkPerWord) # If words matches if Ch == userEnteredAfterSorting: # Print the word print(checkPerWord)# Driver Codeif __name__ == '__main__': # Given string str string = "tac" # Function Call jumbledString(string)# This code is contributed by Aditya Sharma |
Output: 
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!



