【牛客网】字符串计数
题目描述
求字典序在s1和s2之间的,长度在len1到len2之间的字符串个数,结果 mod 1000007.
输入描述
每组数据包涵s1(长度小于100),s2(长度小于100),len1(小于100000),len2(大于len1,小于100000)
解题思路
算出两个字符串各自每位s[i]-'a’的值,得出总的字典序和Count,然后Count(s2)-Count(s1)-1
#include <iostream>
using namespace std;
int Count(string s)
{
int ret = 0;
for(int i = 0; i < s.size(); i++) {
//排列组合,每位都有26种搭配,所以每次都要乘26
ret = ret * 26 + s[i] - 'a';
}
return ret;
}
int main()
{
string s1, s2;
int len1, len2;
while(cin >> s1 >> s2 >> len1 >>len2) {
cout << (Count(s2) - Count(s1) - 1) % 1000007 << endl;
}
return 0;
}