【问题标题】:How to find number of occurences of particular characters in sequential order如何按顺序查找特定字符的出现次数
【发布时间】:2018-10-22 02:09:11
【问题描述】:

我试图在一组字符中查找特定字符串的出现次数。字符串中的字母不必相邻,但必须按顺序出现。

例如,以下序列包含字符串“abc”的四次出现

序列“aabcc”

出现次数:

a a b c c

a a b c c

a a b c c

a a b c c

关于如何在不消耗字符的情况下进行匹配有什么帮助吗?我试图使用正则表达式和匹配,但我不确定它是否可能。我正在为 php 写这个

【问题讨论】:

    标签: php regex


    【解决方案1】:

    Demo

    <?php
    
    $sequence = "aabbcc";
    $occurrences = array();
    
    $sequences = str_split($sequence);
    // dn($sequences);
    $sequences_amount = array();
    
    foreach ($sequences as $key => $char) {
        if(!isset($sequences_amount[$char])){
            $sequences_amount[$char] = 1;
        }else{
            $sequences_amount[$char]++;
        }
    
    }
    
    var_dump($sequences_amount);
    
    function sequenceCount($data = array())
    {
        if(!isset($data) || empty($data) || (count($data) == 0))return;
    
        $count = NULL;
    
        foreach ($data as $char => $amount) {
            if($count == NULL){
                $count = $amount;
            }else{
                $count = $count * $amount;
            }
        }
    
        return $count;
    }
    
    $count = sequenceCount($sequences_amount);
    echo("\n\nResult:\n");
    
    echo($count);
    

    【讨论】:

      猜你喜欢
      • 2020-01-19
      • 2010-09-22
      • 2019-02-28
      • 2021-09-20
      • 1970-01-01
      • 1970-01-01
      • 2017-03-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多