zoukankan      html  css  js  c++  java
  • IT公司100题-25-求字符串中的最长数字串

    问题描述:
    实现一个函数,求出字符串中的连续最长数字串。例如输入”12345cbf3456″,输出”12345″。
    函数原型为:
    void conti_num_max( const char * src, char * dest);

    dest保存最长数字串,返回void。

    分析:
    遍历一遍字符串,记录起始位置和长度即可。
     

    代码实现:

     1 // 25.cc
     2 #include <iostream>
     3 #include <cstring>
     4 using namespace std;
     5 
     6 void conti_num_max(const char* src, char* dest) {
     7     if (!src) {
     8         *dest = '';
     9         return;
    10     }
    11 
    12     size_t len = 0;
    13     size_t max_len = 0;
    14     const char* p = src;
    15     const char* p_start = NULL;
    16     while (*p != '') {
    17         if (*p >= '0' && *p <= '9')
    18             len++;
    19         else {
    20             if (len > max_len) {
    21                 max_len = len;
    22                 p_start = p - len;
    23             }
    24             len = 0;
    25         }
    26         p++;
    27     }
    28     strncpy(dest, p_start, max_len);
    29 }
    30 
    31 int main() {
    32     string s;
    33     cout << "input a str contain num:" << endl;
    34     getline(cin, s);
    35 
    36     char* dest = new char[s.size() + 1];
    37     conti_num_max(s.c_str(), dest);
    38     cout << dest << endl;
    39     return 0;
    40 }

    输出:

    $ ./a.exe
    input a str contain num:
    123dfasdf123123asdfasdf33333333333333asdfsdf221asdf2323
    33333333333333
  • 相关阅读:
    Java实现文件夹下文件实时监控
    JAVA读取文件夹大小
    Java获取Linux上指定文件夹下所有第一级子文件夹
    自定义日志框架实现
    Node爬取简书首页文章
    NodeJS多进程
    NodeJS 连接接MySQL
    NodeJS Web模块
    NodeJS 模块&函数
    NodeJS Stream流
  • 原文地址:https://www.cnblogs.com/dracohan/p/3927522.html
Copyright © 2011-2022 走看看