判断两个字符是否同构
使用语言:PHP
同构:如字符串‘aabbccc’和字符串‘bbccvvv’的结构相同,而和‘abccddd’不同!
代码演示:
function same_structure($str1, $str2)
{
if ($str1 == $str2) {
return $str1 . '和' . $str2 . '同构!';
}
$len1 = strlen($str1);
$len2 = strlen($str2);
if ($len1 != $len2) {
return $str1 . '和' . $str2 . '不同构!';
}
if (get_structure($str1) == get_structure($str2)) {
return $str1 . '和' . $str2 . '同构!';
} else {
return $str1 . '和' . $str2 . '不同构!';
}
}
function get_structure($str)
{
$len1 = strlen($str);
$num1 = 1;
$num_str = '';
for ($i = 0; $i < $len1 - 1; $i++) {
if ($str[$i] == $str[$i + 1]) {
$num1++;
} else {
$num1 = 1;
}
$num_str .= $num1;
}
return $num_str;
}
运行:
$a = 'aabbccc';
$b = 'eeaaccc';
$c = 'ccvvded';
echo same_structure($a,$b);
echo '<br>';
echo same_structure($a, $c);
结果:
aabbccc和eeaaccc同构!
aabbccc和ccvvded不同构!
欢迎补充!
千而の大狮子!