nyoj 1112 求次数 (map)
求次数
- 描述
-
题意很简单,给一个数n 以及一个字符串str,区间【i,i+n-1】 为一个新的字符串,i 属于【0,strlen(str)】如果新的字符串出现过ans++,例如:acmacm n=3,那么 子串为acm cma mac acm ,只有acm出现过
求ans;
- 输入
- LINE 1: T组数据(T<10)
LINE 2: n ,n <= 10,且小于strlen(str);
LINE 3:str
str 仅包含英文小写字母 ,切长度小于10w - 输出
- 求 ans
- 样例输入
-
2
2
aaaaaaa
3
acmacm - 样例输出
-
5
1/**
分析:该题是判断 一个字符串中的长度为n的子串重复的次数
方法:map <string, int> || set <string>
模板1 (map):
int ans = 0;
map <string, int> my_map;
pair <map <string, int> :: iterator, bool> pr; for (int i = 0; i <= str.size () - n; ++ i)
{
sub_str = str.substr (i, n);
pr = my_map.insert (pair <string, int> (sub_str, 0));
if (!pr.second)
{
++ ans;
}
}
cout <<ans <<endl; 模板2 (set):
int ans = 0;
set <string> my_set;
pair <set <string> :: iterator, bool> pr; for (int i = 0; i <= str.size () - n; ++ i)
{
sub_str = str.substr (i, n);
pr = my_set.insert (sub_str);
if (!pr.second)
{
ans ++;
}
}
cout << ans <<endl;
**/C/C++代码实现 (map):
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <cstdio>
#include <stack>
#include <queue>
#include <map> using namespace std; int main ()
{
int T;
scanf ("%d", &T);
while (T --)
{
int n, str_len, ans = ;
string str, mid_str;
scanf ("%d", &n);
cin >>str;
str_len = str.size(); map <string, int> my_map;
pair <map <string, int> :: iterator, bool> pr; for (int i = ; i <=str_len - n; ++ i)
{
mid_str = str.substr (i, n);
pr = my_map.insert (pair <string, int> (mid_str, ));
if (!pr.second)
{
++ ans;
}
} printf ("%d\n", ans);
}
return ;
}C/C++代码实现 (set):
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <cstdio>
#include <stack>
#include <queue>
#include <map>
#include <set> using namespace std; int main ()
{
int T;
scanf ("%d", &T);
while (T --)
{
int n, str_len, ans = ;
string str, mid_str;
scanf ("%d", &n);
cin >>str;
str_len = str.size(); set <string> my_set;
pair <set <string> :: iterator, bool> pr; for (int i = ; i <=str_len - n; ++ i)
{
mid_str = str.substr (i, n);
pr = my_set.insert (mid_str);
if (!pr.second)
{
++ ans;
}
} printf ("%d\n", ans);
}
return ;
}
nyoj 1112 求次数 (map)的更多相关文章
- nyoj 1112 求次数(map, set)
求次数 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 题意很简单,给一个数n 以及一个字符串str,区间[i,i+n-1] 为一个新的字符串,i 属于[0,strl ...
- LeetCode通关:求次数有妙招,位运算三连
分门别类刷算法,坚持,进步! 刷题路线参考: https://github.com/chefyuan/algorithm-base 大家好,我是刷题困难户老三,这一节我们来刷几道很有意思的求次数问题, ...
- 求一个Map中最大的value值,同时列出键,值
求一个Map中最大的value值,同时列出键,值 方法1. public static void main(String[] args){ Map map=new HashMap(); map.p ...
- ACM题目————STL练习之求次数
题目地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=1112 描述 题意很简单,给一个数n 以及一个字符串str,区间[i,i+n-1] 为一个 ...
- nyoj最少乘法次数——快速幂思想
最少乘法次数 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 给你一个非零整数,让你求这个数的n次方,每次相乘的结果可以在后面使用,求至少需要多少次乘.如24:2*2 ...
- nyoj 117 求逆序数 (归并(merge)排序)
求逆序数 时间限制:2000 ms | 内存限制:65535 KB 难度:5 描述 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序.一个排列中 ...
- nyoj 95-众数问题 (map)
95-众数问题 内存限制:64MB 时间限制:3000ms 特判: No 通过数:16 提交数:29 难度:3 题目描述: 所谓众数,就是对于给定的含有N个元素的多重集合,每个元素在S中出现次数最多的 ...
- nyoj 表达式求值
35-表达式求值 内存限制:64MB 时间限制:3000ms Special Judge: Noaccepted:19 submit:26 题目描述: ACM队的mdd想做一个计算器,但是,他要做的不 ...
- NYOJ 117 求逆序数 (树状数组)
题目链接 描述 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序.一个排列中逆序的总数就称为这个排列的逆序数. 现在,给你一个N个元素的序列,请你判断出 ...
随机推荐
- CTF-SSH服务渗透
环境 Kali ip 192.168.56.102 Smb 靶机ip 192.168.56.101 0x01信息探测 首页发现有类似用户名的信息 先记录下来 Martin N Hadi M Jimmy ...
- [Luogu3797] 妖梦斩木棒
题目背景 妖梦是住在白玉楼的半人半灵,拥有使用剑术程度的能力. 题目描述 有一天,妖梦正在练习剑术.地面上摆放了一支非常长的木棒,妖梦把它们切成了等长的n段.现在这个木棒可以看做由三种小段构成,中间的 ...
- nginx::基于Nginx+nginx-rtmp-module+ffmpeg搭建rtmp、hls流媒体服务器
待续 ffmpeg -re -i "/home/bk/hello.mp4" -vcodec libx264 -vprofile baseline -acodec aac -ar 4 ...
- 5. Sersync实时同步
rsync+Sersync数据的实时同步 sersync介绍 1.什么是实时同步 监控一个目录的变化, 当该目录触发事件(创建\删除\修改) 就执行动作, 这个动作可以是 rsync同步 ,也可以是其 ...
- Hive On HBase实战
1.概述 HBase是一款非关系型.分布式的KV存储数据库.用来存储海量的数据,用于键值对操作.目前HBase是原生是不包含SQL操作,虽然说Apache Phoenix可以用来操作HBase表,但是 ...
- vue系列---响应式原理实现及Observer源码解析(一)
_ 阅读目录 一. 什么是响应式? 二:如何侦测数据的变化? 2.1 Object.defineProperty() 侦测对象属性值变化 2.2 如何侦测数组的索引值的变化 2.3 如何监听数组内容的 ...
- 算法<初级> - 第一章 排序相关问题
算法 - 第一章 时间复杂度: Big O 时间/空间复杂度计算一样,都是跟输入数据源的大小有关 n->∞ O(logn) 每次只使用数据源的一半,logn同理 最优解 先满足时间复杂度的情况最 ...
- Vultr新用户充值送50刀
充值送50刀 活动还是可以的,充个10刀,适合用来当测试服,按时间计费
- beanfactory中单例bean的初始化过程(一)
Date 10.06 pm Point 完成beanfactory中单例bean的初始化 beanFactory.preInstantiateSingletons() 拿到所有的bean定义信息(在 ...
- Python字典及相关操作(内含例题)
Python字典类型 今天将会介绍一种在python中十分常见的组合数据类型——字典 通过一些实例来理解字典中的常规操作 什么是字典类型? 列表中查找是通过整数的索引(元素在列表中的序号)来实现查找功 ...