【C++】度度熊的暗语-百度机试题-C++学习笔记
来源:互联网 发布:淘宝类目怎么编辑分类 编辑:程序博客网 时间:2024/06/14 06:18
度度熊的暗语
Problem Description
我们都知道,地球上有一种神秘的生物———程序猿;
但是,也许你不知道,还有一种更神秘的生物:度度熊!
度度熊的神秘之处在于他只说暗语,暗语由一串英文字母组成(‘a'到’z',以及由‘A'到’Z“)。
假设:
一、字母‘a’代表的值为1(即value(a)==1,‘b’为2,......,‘z’为26;
二、1一大写字母相当于其对应的2个小写字母,如bBb和bbbb是等价的;
三、如果出现连续的相同自负,如aaaa......(连续k个a),这k个a的总权值会编程k*k*value(a);比如,如bBb与bbbb,它们所对应的总权值都是4*4*2=32.
你能计算出度度熊暗语的权值吗?
Input
输入数据第一行是一个正整数T(T<=1000),表示有T测试数据。
接下来T行,每行一句度度熊的暗语,即仅由大小写英文字母构成的字符串,字符串的长度最多为10000.
Output
对于每组数据,请输出一个数字,代表度度熊暗语对应的权值;
每组输出占一行。
以下是本人写的代码,如有错误尽请指正。
/* * stream.cpp * * Created on: 2015年4月16日 * Author: CXH */#include <iostream>#include <vector>#define testmaxnum 1000//输入的字符个数不超过#define stringmaxnum 10000//输入的单个字符长度不超过using namespace std;int main(){int testnum;cin>>testnum;//从键盘输入T测试数据if(testnum>1000){cout<<"输入的字符个数不超过"<<testmaxnum<<endl;return 0;}vector<string> svec;while(testnum--){string str;cin>>str;//从键盘输入单个字符串if(str.length()>10000){cout<<"输入的单个字符长度不超过"<<stringmaxnum<<endl;return 0;}svec.push_back(str);}string str2;int qtemp=0,dtemp=0;//qtemp代表前一个字母所代表的值,dtemp代表当前字母所代表的值'a'=1,'b'=2...int cfk=0;//连续重复小写字母的数量int zm=1;//大写字母时为2,小写字母时为1int qzv=0;//权值vlauefor (vector<string>::iterator vecstart=svec.begin(); vecstart!=svec.end(); vecstart++) {str2=*vecstart;for (string::size_type i = 0;i < str2.length();i++) {if(str2[i]>='A'&&str2[i]<='Z')//当字母为大写时{dtemp=str2[i]-'a'+1+32;zm=2;}else if(str2[i]>='a'&&str2[i]<='z')//当字母为小写时{dtemp=str2[i]-'a'+1;zm=1;}else {cout<<"容器中输入数据错误!输入仅由大小写英文字母构成的字符串!"<<endl;return 0;}if(qtemp==dtemp)//当当前字母与前一字母重复时{cfk=cfk+zm;}else {//当当前字母与前一字母不重复时qzv=qzv+cfk*cfk*qtemp;cfk=zm;qtemp=dtemp;}if(i==str2.length()-1)//当遍历到最后一个字母时{qzv=qzv+cfk*cfk*dtemp;}}cout<<qzv<<endl;/* * 输出一串暗语后初始化各值 */qtemp=0;dtemp=0;cfk=0;zm=1;qzv=0;}return 1;}
0 0
- 【C++】度度熊的暗语-百度机试题-C++学习笔记
- c语言学习笔记[转载]百度C语言吧
- 百度面试题蚂蚁(C#)
- 百度编程大赛试题(C/C++)
- C的学习笔记
- C++/C学习笔记
- 2012百度面试题(c++)
- C/C++学习笔记33:面试题中常见的位操作问题
- Pro*C的学习笔记
- C#的学习笔记(一)
- C语言的学习笔记
- linux C的学习笔记
- xcode的C学习笔记
- C++/C试题的答案
- C/C++试题(笔记)
- 【百度之星】C:度度熊的礼物
- C语言的试题
- 【C/C++】STL学习笔记
- C#遍历文件夹
- Android系统架构分析
- IE10、IE11以上版本的浏览器的开发调试工具如何查看cookie?
- JS项目之旅第一天
- 学英语《每日一歌》之my heart will go on
- 【C++】度度熊的暗语-百度机试题-C++学习笔记
- Win8.1的IE缓存文件夹哪里去了?细说系统安装分区里那些带箭头的文件夹
- 2月29日
- Android Fragment学习之二、Fragement的使用方法
- 第二章
- 日拱一卒(四十八)
- 关于注入及Hook的一点认识
- Java IO 详解
- javaweb学习总结(二十九)——EL表达式