Jump to content

anagram solver better solution?


jake2891

Recommended Posts

hey guys i wrote an quick and dirty anagram solver for a challenge on hts  which works great but i am more interested on feedback of how I could have written it better / more efficiently. anyone have there own version of writing this? thanks

 


$scramwords = array("htssboe","rtefcelh","vteevl","edsiyn","awloddno","dtey1d","kuedci","seellhy","sernin","acianro");
$unscramwords = array();
$filename = '../wordlist.txt';

// loop through scrambled words
foreach($scramwords as $scramword)
{
    // open the file
    if($fh = fopen($filename,'r')) do {
      
      // read line
      $line = fgets($fh);
      
      // see if line and scrambled word are same length
      if((strlen(trim($line))) == (strlen(trim($scramword))))
      {
          //if they are the same length split the line into and array and the scrambled word into an array
          
          $l = array();
          for($i=0;$i<strlen(trim($line));$i++){
              $l[$i] = substr(trim($line),$i,1);
          }
          
          $s = array();
          for($i=0;$i<strlen(trim($scramword));$i++){
             $s[$i] = substr(trim($scramword),$i,1);
          }
          
          $errors = 0;
          // see if the arrays are different
          $chk = array_diff($l,$s);
          
          if(!empty($chk)){
              $errors = 1;
              
          }
          // see if arrays are different in reverse order
          $chk2 = array_diff($s,$l);
          
          if(!empty($chk2)){
              $errors = 1;   
          }

          // found scrambled word
          if(!$errors)
          {
              array_push($unscramwords,$line);
          }
                 
      }
      
    }while(!feof($fh));

    fclose($fh);
}
// print out comma seperated un scrambled words
echo implode(",",$unscramwords);

Link to comment
https://forums.phpfreaks.com/topic/222284-anagram-solver-better-solution/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.