> 백엔드 개발 > PHP 튜토리얼 > PHP 最长公共子序列LCS 中文汉字版本怎么写?

PHP 最长公共子序列LCS 中文汉字版本怎么写?

WBOY
풀어 주다: 2016-06-06 20:42:06
원래의
1576명이 탐색했습니다.

已经写了ASCII字母版

<code>function LCS($str_1, $str_2) {
  $len_1 = strlen($str_1);
  $len_2 = strlen($str_2);
  $len = $len_1 > $len_2 ? $len_1 : $len_2;

  $dp = array();
  for ($i = 0; $i  $dp[$i][$j - 1] ? $dp[$i - 1][$j] : $dp[$i][$j - 1];
      }
    }
  }

  return $dp[$len_1][$len_2];
}
</code>
로그인 후 복사
로그인 후 복사

如何扩展成中文版?

回复内容:

已经写了ASCII字母版

<code>function LCS($str_1, $str_2) {
  $len_1 = strlen($str_1);
  $len_2 = strlen($str_2);
  $len = $len_1 > $len_2 ? $len_1 : $len_2;

  $dp = array();
  for ($i = 0; $i  $dp[$i][$j - 1] ? $dp[$i - 1][$j] : $dp[$i][$j - 1];
      }
    }
  }

  return $dp[$len_1][$len_2];
}
</code>
로그인 후 복사
로그인 후 복사

如何扩展成中文版?

我自己解决了,只能自问自答了

<code><?php //最长公共子序列英文版
function LCS_en($str_1, $str_2) {
  $len_1 = strlen($str_1);
  $len_2 = strlen($str_2);
  $len = $len_1 > $len_2 ? $len_1 : $len_2;

  $dp = array();
  for ($i = 0; $i  $dp[$i][$j - 1] ? $dp[$i - 1][$j] : $dp[$i][$j - 1];
      }
    }
  }

  return $dp[$len_1][$len_2];
}

//拆分字符串
function mbStringToArray($string, $encoding = 'UTF-8') {
  $arrayResult = array();

  while ($iLen = mb_strlen($string, $encoding)) {
    array_push($arrayResult, mb_substr($string, 0, 1, $encoding));
    $string = mb_substr($string, 1, $iLen, $encoding);
  }

  return $arrayResult;
}

//最长公共子序列中文版
function LCS_cn($str1, $str2, $encoding = 'UTF-8') {
  $mb_len1 = mb_strlen($str1, $encoding);
  $mb_len2 = mb_strlen($str2, $encoding);

  $mb_str1 = mbStringToArray($str1, $encoding);
  $mb_str2 = mbStringToArray($str2, $encoding);

  $len = $mb_len1 > $mb_len2 ? $mb_len1 : $mb_len2;

  $dp = array();
  for ($i = 0; $i  $dp[$i][$j - 1] ? $dp[$i - 1][$j] : $dp[$i][$j - 1];
      }
    }
  }

  return $dp[$mb_len1][$mb_len2];
}
</code>
로그인 후 복사
관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿