码迷,mamicode.com
首页 > 其他好文 > 详细

蓝桥杯训练 字串统计 (暴力+substr)

时间:2015-04-07 15:43:06      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:蓝桥杯   字符串   substr   


 算法训练 字串统计  
时间限制:1.0s   内存限制:512.0MB
   
问题描述

  给定一个长度为n的字符串S,还有一个数字L,统计长度大于等于L的出现次数最多的子串(不同的出现可以相交),如果有多个,输出最长的,如果仍然有多个,输出第一次出现最早的。


输入格式
  第一行一个数字L。
  第二行是字符串S。

  L大于0,且不超过S的长度。


输出格式
  一行,题目要求的字符串。

  输入样例1:
  4
  bbaabbaaaaa

  输出样例1:
  bbaa

  输入样例2:
  2
  bbaabbaaaaa

  输出样例2:

  aa


数据规模和约定
  n<=60
  S中所有字符都是小写英文字母。


题目链接:http://lx.lanqiao.org/problem.page?gpid=T219

题目分析:暴力枚举模式串,朴素匹配,substr复制

#include <iostream>
#include <string>
using namespace std;
string s, ans;

int main()
{
    int l;
    cin >> l >> s;
    int len = s.length();
    int ma = 0;
    for(int i = l; i <= len; i++)
    {
        for(int j = 0; j + i <= len; j++)
        {
            int cnt = 0;
            string tmp1 = s.substr(j, i);
            for(int k = j; k + i <= len; k++)
            {
                string tmp2 = s.substr(k, i);
                if(tmp1 == tmp2)
                    cnt ++;
            }
            if(cnt >= ma)
            {
                if(cnt > ma)
                {
                    ma = cnt;
                    ans = tmp1;
                }
                if(cnt == ma)
                {
                    int l1 = ans.length();
                    int l2 = tmp1.length();
                    if(l2 > l1)
                        ans = tmp1;
                }
            }
        }
    }
    cout << ans << endl;
}


蓝桥杯训练 字串统计 (暴力+substr)

标签:蓝桥杯   字符串   substr   

原文地址:http://blog.csdn.net/tc_to_top/article/details/44919683

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!