描述
传送门:poj-1850
Transmitting and memorizing information is a task that requires different coding systems for the best use of the available space. A well known system is that one where a number is associated to a character sequence. It is considered that the words are made only of small characters of the English alphabet a,b,c, …, z (26 characters). From all these words we consider only those whose letters are in lexigraphical order (each character is smaller than the next character).
The coding system works like this:
- The words are arranged in the increasing order of their length.
- The words with the same length are arranged in lexicographical order (the order from the dictionary).
- We codify these words by their numbering, starting with a, as follows:
a - 1
b - 2
…
z - 26
ab - 27
…
az - 51
bc - 52
…
vwxyz - 83681
…Specify for a given word if it can be codified according to this coding system. For the affirmative case specify its code.
Input
The only line contains a word. There are some constraints:
- The word is maximum 10 letters length
- The English alphabet has 26 characters.
Output
The output will contain the code of the given word, or 0 if the word can not be codified.
Examples
intput
1
bf
output
1
55
思路
- 对于长度为$N$的字符串应该先求长度为$N-1$的字符串有多少种。很明显可以看出长度为i的字符串就是从26个字母中选择i个字符组合(因为有大小限制,所以不是排列)。所以长度为$N-1$的字符串有:$
sum_{i=1}^{Len-1}C_{26}^{i}$种。- 对于剩下的,就从a[0]开始,每次计算这个字母开头的单词个数,遍历完就行了。
代码
1 |
|