FZU Problem 2222 ABCDEFG(水题)——FOJ有奖月赛-2016年4月(校赛热身赛)

来源:互联网 发布:java开发工程师中心 编辑:程序博客网 时间:2024/06/06 05:13

此文章可以使用目录功能哟↑(点击上方[+])

 FZU Problem 2216 The Longest Straight

Accept: 0    Submit: 0
Time Limit: 1000 mSec    Memory Limit : 32768 KB

 Problem Description

表弟今天的英语作业是练习书写前7个英文字母。勤奋的他写了一页、一页、又一页……

Yellowstar想知道表弟总共写了多少笔划。

(附:英文字母标准手写体教程:



 Input

输入第一行为一个正整数T。

接下去T行,每行为前七个英文字母的大小写形式组成的非空字符串,表示一份作业。

T<=20,每行长度<=100。

 Output

对于每份作业,输出一行,表示其中的笔划总数。

 Sample Input

2
ABCDEFG
abcdefg

 Sample Output

15
9

 Hint

 Problem Idea

解题思路:

【题意】
前七个英文字母的大小写形式组成的非空字符串

问总的笔画数为多少

【类型】
水题

【分析】

因为英文字母标准手写体教程已经给我们了

所以完全避免了由于我们书写不规范而导致出错

我们只需按照图中标明的笔画数对字母一一处理就可以了

大小写的笔画数可以分别存在不同数组中方便直接取值,且这样代码也比较简短

【时间复杂度&&优化】
O(strlen(s))

题目链接→FZU Problem 2222 ABCDEFG

 Source Code

/*Sherlock and Watson and Adler*/#pragma comment(linker, "/STACK:1024000000,1024000000")#include<stdio.h>#include<string.h>#include<stdlib.h>#include<queue>#include<stack>#include<math.h>#include<vector>#include<map>#include<set>#include<bitset>#include<cmath>#include<complex>#include<string>#include<algorithm>#include<iostream>#define eps 1e-9#define LL long long#define PI acos(-1.0)#define bitnum(a) __builtin_popcount(a)using namespace std;const int N = 7;const int M = 105;const int inf = 1000000007;const int mod = 1000003;int A[N]={3,2,1,2,3,3,1},a[N]={1,1,1,2,1,2,1};char s[M];int main(){    int t,i,sum;    scanf("%d",&t);    while(t--)    {        sum=0;        scanf("%s",s);        for(i=0;s[i]!='\0';i++)            sum+=(s[i]>='a'&&s[i]<='z'?a[s[i]-'a']:A[s[i]-'A']);        printf("%d\n",sum);    }    return 0;}
菜鸟成长记

0 0