统计字符

题目链接

Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)

Problem Description

统计一个给定字符串中指定的字符出现的次数

Input

测试输入包含若干测试用例,每个测试用例包含2行,第1行为一个长度不超过5的字符串,第2行为一个长度不超过80的字符串。注意这里的字符串包含空格,即空格也可能是要求被统计的字符之一。当读到'#'时输入结束,相应的结果不要输出。

Output

对每个测试用例,统计第1行中字符串的每个字符在第2行字符串中出现的次数,按如下格式输出:

c0 n0

c1 n1

c2 n2

...

其中ci是第1行中第i个字符,ni是ci出现的次数。

Sample Input

I

THIS IS A TEST

i ng

this is a long test string

Sample Output

I 2

i 3

5

n 2

g 2

注:第2个测试用例中,空格也是被统计的字符之一。

采用了一种比较麻烦的方法:字符串的hash方法

#include<iostream>
using namespace std; inline int hashFunc(char c)
{
int hashValue;
if(c >= 'A' && c <= 'Z')
hashValue = 257 + c - 'A';
else if(c >= 'a' && c <= 'z')
hashValue = 257 + 26 + c - 'a';
else
hashValue = 0 + c - ' ';
return hashValue;
}
int main()
{
//freopen("in.txt","r", stdin);
string str1, str2;
while(getline(cin, str1), str1!="#")
{
getline(cin, str2);
int arr[400] = {0};
for(int i=0;i<str2.length();i++)
arr[hashFunc(str2[i])]++;
for(int i=0;i<str1.length();i++)
printf("%c %d\n",str1[i], arr[hashFunc(str1[i])]);
} return 0;
}

下边的是一种简单的方法:

#include<iostream>
#include <cstring>
#include<memory.h> using namespace std; int main() {
char a[6], b[81];
int ans[256]={0};
while (gets(a) && a[0] != '#') {
gets(b);
memset(ans,0,256*sizeof(int));
// 统计出每个字符的出现次数
for(int i=0;i<strlen(b);i++){
ans[b[i]]++;
}
// 直接输出结果
for(int i=0;i<strlen(a);i++){
printf("%c %d\n", a[i], ans[a[i]]);
}
}
return 0;
}

杭电oj1860:统计字符(字符串hash / 水题)的更多相关文章

  1. 杭电oj1859:最小长方形(水题)

    最小长方形 题目链接 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem ...

  2. 『ACM C++』HDU杭电OJ | 1415 - Jugs (灌水定理引申)

    今天总算开学了,当了班长就是麻烦,明明自己没买书却要带着一波人去领书,那能怎么办呢,只能说我善人心肠哈哈哈,不过我脑子里突然浮起一个念头,大二还要不要继续当这个班委呢,既然已经体验过就可以适当放下了吧 ...

  3. hdu 4622 Reincarnation 字符串hash 模板题

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4622 题意:给定一个长度不超过2000的字符串,之后有不超过1e5次的区间查询,输出每次查询区间中不同 ...

  4. 题目1021:统计字符(hash简单应用)

    问题来源 http://ac.jobdu.com/problem.php?pid=1021 问题描述 每次输入两个字符串,统计第一个字符串中的每个字符在第二个字符串中出现的次数. 问题分析 太明显了, ...

  5. HDU 1880 字符串hash 入门题

    Problem Description 哈利波特在魔法学校的必修课之一就是学习魔咒.据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔 ...

  6. 【COGS & USACO Training】710. 命名那个数字(hash+水题+dfs)

    http://cojs.tk/cogs/problem/problem.php?pid=710 近日开始刷水... 此题我为了练一下hash...但是hash跑得比暴力还慢.. 不言而喻... #in ...

  7. Java实现 LeetCode 796 旋转字符串 (水题)

    796. 旋转字符串 给定两个字符串, A 和 B. A 的旋转操作就是将 A 最左边的字符移动到最右边. 例如, 若 A = 'abcde',在移动一次之后结果就是'bcdea' .如果在若干次旋转 ...

  8. hdu-4080 Stammering Aliens 字符串hash 模板题

    http://acm.hdu.edu.cn/showproblem.php?pid=4080 求出现次数大于等于n的最长串. #include<iostream> #include< ...

  9. Bazinga 字符串HASH 这题不能裸HASH 要优化 毒瘤题

    Ladies and gentlemen, please sit up straight. Don't tilt your head. I'm serious. For nn given string ...

随机推荐

  1. python中的异常处理:厌而不舍

      什么是异常? ------异常:不正常的情况 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行.一般情况下,在Python无法正常处理程序时就会发生一个异常. 异常是Pytho ...

  2. ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting operation.

    将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数 HDFS_NAMENODE_USER=root HDFS_DATANODE_USER=root HDFS_SECONDARY ...

  3. c++刷算法的好处

    写再最前面:摘录于柳神的笔记 在已经学习过C语⾔的前提下,学习C++并使⽤它刷算法的学习成本⾮常低-只需要⼏个⼩时就可 以学会- C++向下兼容C,C语⾔⾥⾯的语法完全可以在C++⽂件中运⾏,所以学习 ...

  4. springcloud gateway nullpointerexception (NettyRoutingFilter)

    最近在做一个下载功能时,发现直接调用服务是可以下载的,但是通过gateway路由下载会报NPE异常,具体如下 java.lang.NullPointerException: null at java. ...

  5. 导入spark程序的maven依赖包时,无法导入,报错Unable to import maven project: See logs for details

    问题:导入spark程序的maven依赖包时,无法导入,且报错:0:23 Unable to import maven project: See logs for details 2019-08-23 ...

  6. IDEA 在同一工作空间创建多个项目

    1.创建项目 二..创建工作空间 JavaWorkspace 1.File-> New Project -> 创建工作空间 JavaWorkspace,并 顺便创建项目 JavaOne 2 ...

  7. R rep() 函数

    函数 rep(x,...) rep(x,times = n) 将向量 x 重复 n 次 rep(x,each = n) 将向量 x 的每个元素重复 n 次 在参数缺省情况下,为参数 times

  8. ng-repeat 设定select 选择项

    <select class="form-control m-b" name="FPermissionID" ng-model="mgfunc.F ...

  9. redis 之redis集群与集群配置

    一.为什么要用集群 redis3.0集群采用P2P模式,完全去中心化,将redis所有的key分成了16384个槽位,每个redis实例负责一部分slot,集群中的所有信息通过节点数据交换而更新. r ...

  10. ubuntu 解压命令全览

    .tar解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)-------------------------- ...