Description
Kyoya Ootori is selling photobooks of the Ouran High School Host Club. He has 26 photos, labeled "a" to "z", and he has compiled them into a photo booklet with some photos in some order (possibly with some photos being duplicated). A photo booklet can be described as a string of lowercase letters, consisting of the photos in the booklet in order. He now wants to sell some "special edition" photobooks, each with one extra photo inserted anywhere in the book. He wants to make as many distinct photobooks as possible, so he can make more money. He asks Haruhi, how many distinct photobooks can he make by inserting one extra photo into the photobook he already has?
Please help Haruhi solve this problem.
Input
The first line of input will be a single string s (1 ≤ |s| ≤ 20). String s consists only of lowercase English letters.
Output
Output a single integer equal to the number of distinct photobooks Kyoya Ootori can make.
Sample Input
a
51
hi
76
Hint
In the first case, we can make 'ab','ac',...,'az','ba','ca',...,'za', and 'aa', producing a total of 51 distinct photo booklets.
题意:给出字符串,都是由小写字母组成,我们可以在任何位置加入一个字母,问有多少种不同的结果。最后一行输出这个结果。
题解:我们可以用全部结果减去不符合要求的结果, 如果字符串的长度为n, 那么我们有 n+1 个位置可以放,共有 (n+1)* 26 钟, 排除相同的,其实里面有字符串长度个不符合要求的, 例如,
1a2b3c4 abc 有4个位置可以放 1: 放a aabc 2: 可以放a, 也可以放b aabc abbc 3:放b 放c abbc abcc 4: 放c abcc 每个字母都重复两遍,所以每次结果减去字符串长度就是最终结果。
代码附上:
#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <string.h>
#include <queue>
#include <vector>
using namespace std;
char s[30];
int main(){
int len ;
scanf("%s", &s);
len = strlen(s);
int n = (len + 1);
int sum = n * 26;
int flag = 1;
sum -= len;
cout << sum << endl;
return 0;
}