小明有 26 种游戏海报,用小写字母 "a" 到 "z" 表示。小明会把游戏海报装订成册(可能有重复的海报),册子可以用一个字符串来表示,每个字符就表示对应的海报,例如 abcdea 。小明现在想做一些“特别版”,然后卖掉。特别版就是会从所有海报(26种)中随机选一张,加入到册子的任意一个位置。
那现在小明手里已经有一种海报册子,再插入一张新的海报后,他一共可以组成多少不同的海报册子呢?
数据范围:输入的字符串长度满足 
海报册子的字符串表示
一个整数,表示可以组成的不同的海报册子种类数
a
51
我们可以组成 'ab','ac',...,'az','ba','ca',...,'za' 还有 'aa', 一共 51 种不同的海报册子。
#include <stdio.h>
int main()
{
char whatever;
int a = 0;
while(scanf("%c", &whatever)!=EOF) a++;
printf("%d\n", 25*(a-1) + 26);
}
Python3:print(25*len(input())+26)
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
String str = input.nextLine();
int len = str.length();
int sum = (len+1)*25+1;
System.out.println(sum);
}
}
import java.util.Scanner;
public class Main {
public static int gameBill(String str){
int len = str.length();
if(len < 1 || len > 20){
return 0;
}
// 有 len+1 个空位置可以插入新海报(26种字符可选),有 len 组重复的数据需要去掉
return 26 * (len + 1) - len;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
System.out.println(gameBill(str));
sc.close();
}
} package nowcoder.demo04;
import java.util.Scanner;
public class Main {
/**
* 运行时间:41ms
*
* 占用内存:10452k
* */
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String next = scanner.next();
int length = next.length();
System.out.println((length+1)*26-length);
}
}
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNextLine()){
String booklet = sc.nextLine();
System.out.println(calculateCombinations(booklet.length()));
}
}
private static long calculateCombinations(int n){
return (long) (n+1)*26-n;
}
} package cn.bubbletg2.t01; import java.util.Scanner; public class Main { public static void main(String[] args) { String s = new Scanner(System.in).next(); int length = s.length(); if (length < 1 || length >= 20) return; int j = 0; for (int i = 1; i <= 26; i++) { /** * length + 1 表示每次可以插入位置个数, 只有一个 a -a- 可以 ab 或者ba 两个位置 * 长度为2时。 -a-b- 插入位置为3 * * 为什么要26次?因为题目中已经给出 aa 也算,所有 其实相当于26个都可以进行。 */ j += (length + 1); } /** *为什么j- length 如题, _a_ 可以前后两个位置插入,但是插入a 时, aa 与 aa 算同一个 * 若 _a_b_ 我们插入一个a 可能结果有 aab aab aba 我们在插入一个b aab abb abb * 可以发现: aab 与 aab 和 abb abb 重复了 长度为多少,重复多少次。所以减去长度。 */ System.out.println(j - length); } }
欢迎各位指点批评。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String str = s.next();
int n = str.length(); // 输入的字符串长度
// 非法输入处理
if (n < 1 || n>20) {
System.out.println("非法输入");
return;
}
System.out.println(26*(n+1)-n);
}
} /*
26个字母轮流***去。
原字符串中有几个字符和插入字符一样,就会有几个插入效果相同,所以要减去。
*/
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String s = in.next();
int len = s.length();
int ans = 0;
int cnt = 0;
String tmp = "abcdefghijklmnopqrstuvwxyz";
for (int i = 0; i < 26; i++) {
cnt = 0;
for (int j = 0; j < len; j++) {
if (tmp.charAt(i) == s.charAt(j))
cnt++;
}
ans += len + 1 - cnt;
}
System.out.println(ans);
}
}