All pastes #297080 Raw Edit

Miscellany

public php v1 · immutable
#297080 ·published 2006-12-30 20:49 UTC
rendered paste body
<?php$input = 'abcaaaa';$lines = explode("\n", $input);foreach ($lines as $line){	$sorted = str_split($line);	sort($sorted);	$words  = find_anagrams(implode($sorted));	unset($sorted);	$num_words = sizeof($words);	for ($i = 0; $i < $num_words; ++$i)	{		if ($words[$i] <= $line)		{			unset($words[$i]);		}	}	if (sizeof($words))	{		var_dump(array_shift($words));	}	else	{		var_dump('no word');	}	unset($words);}function find_anagrams($word){	$len = strlen($word);	switch ($len)	{		case 0:			return array();		break;		case 1:			return array($word);		break;		default:			$anagrams = array();			for ($pos = 0; $pos < $len; ++$pos)			{				$char = $word[$pos];				if ($pos > 0 && $char === $word[$pos -1])				{					continue;				}				$remaining = substr_replace($word, '', $pos, 1);				$next_anagrams = find_anagrams($remaining);				foreach ($next_anagrams as $next_anagram)				{					$anagrams[] = $char . $next_anagram;				}			}			return $anagrams;		break;	}}?>