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;
}
本文探讨了如何通过在已有的相册中插入一张新照片来创建尽可能多的不同特殊版相册的方法。针对这一问题,文章提供了一种简洁有效的算法解决方案,并通过样例输入输出展示了该方法的具体应用。
590

被折叠的 条评论
为什么被折叠?



