SDUT 3300 完美字符串
来源:互联网 发布:mmd 动作数据 r 18 编辑:程序博客网 时间:2024/06/02 18:54
题目描述
一个字符串的完美度是它里面所有字符的完美度之和,每个字符的完美度都不相同,分别对应1-26中的一个整数,你可以随意给每个字符一个完美度
字符不区分大小写,即’a’和’A’的完美度是相同的,给定一个字符串,输出它的最大可能的完美度
输入
输入一个字符串S(1<=S的长度 <= 10000),S中没有除字母外的其他字符。
输出
由你将1-26分配给不同的字母,使得字符串S的完美度最大,输出这个完美度。
示例输入
dadEYBQTBTKQJ
示例输出
77236
#include <stdio.h>#include <string.h>#include <iostream>using namespace std;char str[10000],t;int a[10000],x;int main(){ while(~scanf("%s",str)) { memset(a,0,sizeof(a)); int sum=0,l=strlen(str); for(int i=0;i<l;i++) if(str[i]>='a' && str[i]<='z') str[i]=str[i]-32; for(int i=0;i<l-1;i++) for(int j=0;j<l-i-1;j++) if(str[j]>str[j+1]) { t=str[j]; str[j]=str[j+1]; str[j+1]=t; } a[str[0]-65]=1; for(int i=1;i<l;i++) { if(str[i]==str[i-1]) a[str[i]-65]++; else a[str[i]-65]=1; } for(int i=0;i<25;i++) for(int j=0;j<25-i;j++) { if(a[j]<a[j+1]) { x=a[j]; a[j]=a[j+1]; a[j+1]=x; } } for(int i=0;i<26;i++) { sum=sum+(26-i)*a[i]; } printf("%d\n",sum); } return 0;}
0 0
- SDUT 3300 完美字符串
- 完美素数 SDUT 3274
- 完美网络 SDUT 2506
- SDUT-2506 完美网络
- SDUT- 2506-完美网络
- sdut 2506 完美网络
- SDUT完美网络
- SDUT-完美网络
- SDUT 2056-完美网络
- 完美的素数 (sdut oj)
- SDUT-2553 完美的素数
- SDUT 2553 完美的素数
- 完美字符串
- 完美字符串
- 完美字符串
- 完美字符串
- 完美字符串
- 完美字符串
- 求一个整数数组中第二大的数
- 做第一个小项目的一点思考(关于备份文件的妙用以及误删文件解决办法)
- 《第一行代码》读书笔记(二)----UI开发(上)
- 关于tomcat出现闪退问题
- Android打包app报错
- SDUT 3300 完美字符串
- C++程序的运行顺序
- U-boot
- (BFS 多个数通过运算符查找是否等于某一个固定的值)
- 打开一个记事本,然后模拟键盘输入
- iOS开发 网络请求——HTTP协议
- 浅谈 Objective-C 指针和 Swift2
- 自定义数据库同步程序
- Jpa规范中persistence.xml 配置文件解析