順列を使用して(各文字を使用して)文字列を「helloworld!」に生成していますが、「helloworld!」に到達するのに...176791かかりました。「helloworld!」にすばやく変換するために、176791と入力する方法はありますか?
...
176790. helloworl!d
176791. helloworld!
私のコード:
#include <windows.h>
#include <string>
#include <iostream>
#include <algorithm>
int main( void )
{
::UINT64 Count = 0;
std::string SomeString = "eohldo!lwrl";
do
{
Count ++;
std::cout << Count << ". " << SomeString << std::endl;
if( SomeString == "helloworld!" )
break;
} while( std::next_permutation( SomeString.begin( ), SomeString.end( ) ) );
::getchar( );
return( 0 );
};