zoukankan      html  css  js  c++  java
  • 连续出现的字符

    描述

    给定一个字符串,在字符串中找到第一个连续出现至少k次的字符。

    输入

    第一行包含一个正整数k,表示至少需要连续出现的次数。1 <= k <= 1000。
    第二行包含需要查找的字符串。字符串长度在1到1000之间,且不包含任何空白符。

    输出

    若存在连续出现至少k次的字符,输出该字符;否则输出No。

    样例输入

    3
    abcccaaab
    

    样例输出

    c
    

    为了学习正则表达式,我这里主要是用正则表达式做的,匹配第一个至少出现k次的字符串,存在则输出匹配字符串第一个字符,否则输出No,于是我给出这样的正则表达式:(w)(1){k-1,},在C++里面需要加上转意符得到下面代码中的正则表达式,注意由于k是用户输入的,所以才出现代码中用一个字符串保存不完整正则信息,后面k输入完整后补全。更多关于正则表达式可以访问:编程胶囊:正则表达式入门,里面还有正则表达式进阶及教程

    完整代码

    #include <iostream>
    #include <regex>
    
    using namespace std;
    
    int main(int argc, char const *argv[])
    {
        string str, k_, reg_str="(\w)(\1){";
        //reg_str包含匹配的正则表达式信息
        regex reg;
        smatch math_str; 
        int k;
        cin >> k >> str; k--;
        k_ = to_string(k);
        k_ += ",}";
        reg_str  += k_;
        reg.assign(reg_str);
        if(regex_search(str, math_str, reg)) cout << ((string)math_str[0])[0];
        else cout << "No
    ";
        system("pause");
        return 0;
    }
    
  • 相关阅读:
    小程序_递归求年纪
    小程序_递归求阶层
    把字符串复制到剪贴板
    主流的三种RF方案及其优缺点比较
    CC1100E的ESD指标?
    delphi怎样打开一个文本文件
    CC1100模块 250K的速率的问题
    delphi 中显示access数据库表怎么实现
    delphi与Access数据库连接的步骤
    数据库基本语句
  • 原文地址:https://www.cnblogs.com/levarz/p/13164584.html
Copyright © 2011-2022 走看看