c++開発-ディクショナリシーケンスの問題で、2つの文字列の間にどれだけの文字列があるかを計算します.
アルゴリズムの古典的な問題:辞書の順序の問題
// , ,
:a b c ....z aa ab ac...az bb bc ..
//a
//aaa aaa 0
//bbb aaa -1
//cout 0 -1
#include
#include
#include
// , ,
//a0; i--)
{
num += f(i);
}
for (int i = word_num[0] - 1; i >= 1; i--)
{
num += order(i, len);
}
for (int i = 1; i <= len; i++)
{
for (int j = word_num[i] - 1; j > word_num[i - 1]; j--)
{
num += order(j, len - 1);
}
}
num++;
return num;
}
int main()
{
int T;
cin >> T;
if (T<0 || T>100000)
{
return 0;
}
string A, B;
int temp = 0;
int arr[100000] = { 0 };
int k = 0;
for (int i = 0; i < T; i++)
{
cin >> A >> B;
if (A == B)
{
arr[k] = 0;
}
if (A>B)
{
arr[k] = -1;
}
else
{
arr[k]=temp = func(B) - func(A);
}
k++;
}
for (int j = 0; j < T; j++)
{
cout << arr[j];
if (j < T - 1)
{
cout << " ";
}
}
return 0;
}