zoukankan      html  css  js  c++  java
  • 后缀字符串 计蒜客模拟赛

    一天蒜头君得到 nnn 个字符串 sis_isi,每个字符串的长度都不超过 101010。

    蒜头君在想,在这 nnn 个字符串中,以 sis_isi 为后缀的字符串有多少个呢?

    输入格式

    第一行输入一个整数 nnn。

    接下来 nnn 行,每行输入一个字符串 sis_isi

    输出格式

    输出 nnn 个整数,第 iii 个整数表示以 sis_isi 为后缀的字符串的个数。

    数据范围

    对于 50%50\%50% 的数据,1≤n≤1031 le n le 10^31n103。

    对于 100%100\%100% 的数据,1≤n≤1051 le n le 10^51n105。

    所有的字符串仅由小写字母组成。

    样例输入

    3
    ba
    a
    aba

    样例输出

    2
    3
    1


    用map和string配合使用。代码很短。
    其中string里面的substr()函数,
    s.substr(0,5)返回的是s里面0-4这五个字符。
    s.substr(5) 返回的是s里面第5个到末尾的所有字符。
    所以这个题目,就可以讲输出的字符串存到map<string,int>里面。 每一个子串的数量从0开始,mp【子串】++计数。然后直接输出map【s[i]】,也就是后缀字符串的数量了。
     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <map>
     5 using namespace std;
     6 const int maxn = 1e5+9;
     7 int n;
     8 string s[maxn];
     9 map<string,int> mp;
    10 int main()
    11 {
    12     scanf("%d",&n);
    13     for(int i = 0; i < n; i++)
    14     {
    15         cin>>s[i];
    16         for(int j = 0; j < s[i].length(); j++)
    17             mp[s[i].substr(j)]++;
    18     }
    19     for(int i = 0; i < n; i++)
    20         cout<<mp[s[i]]<<endl;
    21     return 0;
    22 }
    View Code
  • 相关阅读:
    Javascript进阶(7)---函数参数
    Django连接mssql(SqlServer)
    ORM查询
    Django-Model操作数据库
    Django去操作已经存在的数据库
    如何设置CentOS 7获取动态及静态IP地址
    nginx代理设置
    Django+Linux+Uwsgi+Nginx项目部署文档
    nginx的安装部署
    Django项目在linux系统中虚拟环境部署
  • 原文地址:https://www.cnblogs.com/stul/p/10348064.html
Copyright © 2011-2022 走看看