【发布时间】: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 写这个
【问题讨论】:
我试图在一组字符中查找特定字符串的出现次数。字符串中的字母不必相邻,但必须按顺序出现。
例如,以下序列包含字符串“abc”的四次出现
序列“aabcc”
出现次数:
a a b c c
a a b c c
a a b c c
a a b c c
关于如何在不消耗字符的情况下进行匹配有什么帮助吗?我试图使用正则表达式和匹配,但我不确定它是否可能。我正在为 php 写这个
【问题讨论】:
<?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);
【讨论】: