求次数

时间限制:1000 ms  |  内存限制:65535 KB
难度:2
 
描述

  题意很简单,给一个数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)的更多相关文章

  1. nyoj 1112 求次数(map, set)

    求次数 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 题意很简单,给一个数n 以及一个字符串str,区间[i,i+n-1] 为一个新的字符串,i 属于[0,strl ...

  2. LeetCode通关:求次数有妙招,位运算三连

    分门别类刷算法,坚持,进步! 刷题路线参考: https://github.com/chefyuan/algorithm-base 大家好,我是刷题困难户老三,这一节我们来刷几道很有意思的求次数问题, ...

  3. 求一个Map中最大的value值,同时列出键,值

    求一个Map中最大的value值,同时列出键,值 方法1. public static void main(String[] args){  Map map=new HashMap();  map.p ...

  4. ACM题目————STL练习之求次数

    题目地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=1112 描述 题意很简单,给一个数n 以及一个字符串str,区间[i,i+n-1] 为一个 ...

  5. nyoj最少乘法次数——快速幂思想

    最少乘法次数 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 给你一个非零整数,让你求这个数的n次方,每次相乘的结果可以在后面使用,求至少需要多少次乘.如24:2*2 ...

  6. nyoj 117 求逆序数 (归并(merge)排序)

    求逆序数 时间限制:2000 ms  |  内存限制:65535 KB 难度:5   描述 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序.一个排列中 ...

  7. nyoj 95-众数问题 (map)

    95-众数问题 内存限制:64MB 时间限制:3000ms 特判: No 通过数:16 提交数:29 难度:3 题目描述: 所谓众数,就是对于给定的含有N个元素的多重集合,每个元素在S中出现次数最多的 ...

  8. nyoj 表达式求值

    35-表达式求值 内存限制:64MB 时间限制:3000ms Special Judge: Noaccepted:19 submit:26 题目描述: ACM队的mdd想做一个计算器,但是,他要做的不 ...

  9. NYOJ 117 求逆序数 (树状数组)

    题目链接 描述 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序.一个排列中逆序的总数就称为这个排列的逆序数. 现在,给你一个N个元素的序列,请你判断出 ...

随机推荐

  1. WCE-hash注入工具使用

    wce的使用说明如下 参数解释:-l          列出登录的会话和NTLM凭据(默认值)-s               修改当前登录会话的NTLM凭据 参数:<用户名>:<域 ...

  2. Ubuntu16.04 安装apache+mysql+php(LAMP)

    记录下ubuntu环境下安装apache+mysql+php(LAMP)环境. 0x01安装apache sudo apt-get update sudo apt-get install apache ...

  3. .Net Core 3.0 IdentityServer4 快速入门

    .Net Core 3.0 IdentityServer4 快速入门 一.简介 IdentityServer4是用于ASP.NET Core的OpenID Connect和OAuth 2.0框架. 将 ...

  4. Python斐波那契数列

    今天偶然看到这个题目,闲着没事练一下手 if __name__ == '__main__': """ 斐波那契数列(Fibonacci sequence), 又称黄金分割 ...

  5. 《利用Python进行数据分析·第2版》第四章 Numpy基础:数组和矢量计算

    <利用Python进行数据分析·第2版>第四章 Numpy基础:数组和矢量计算 numpy高效处理大数组的数据原因: numpy是在一个连续的内存块中存储数据,独立于其他python内置对 ...

  6. 一个html,3D 标签 鼓励自己

    效果如图: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...

  7. 数据结构(十六)模式匹配算法--Brute Force算法和KMP算法

    一.模式匹配 串的查找定位操作(也称为串的模式匹配操作)指的是在当前串(主串)中寻找子串(模式串)的过程.若在主串中找到了一个和模式串相同的子串,则查找成功:若在主串中找不到与模式串相同的子串,则查找 ...

  8. Linux杂谈:解决配置静态ip后eth0网卡启动不了的问题

    今天在看imooc上的<Linux网络管理>的课程中,在做一些实验时修改了下网络配置,发现了一些问题,就是保存网络配置后eth0网卡打不开,可能也会有很多人出现这类问题,我就在这里分享下自 ...

  9. Tesseract引擎编译

    1. 工具包下载链接 libtiff 4.09 http://download.osgeo.org/libtiff/tiff-4.0.9.zip leptonica 1.76.0 http://www ...

  10. xml 需要转义的字符

    XML实体中不允许出现"&","<",">"等特殊字符,否则XML语法检查时将出错,如果编写的XML文件必须包含这些字符 ...