提问人:BigJonna 提问时间:9/1/2021 更新时间:9/1/2021 访问量:66
为什么这个布尔值返回 true
Why does this boolean return true
问:
我正在做一个我通过的编码挑战,但当我看到这个解决方案时,我惊呆了,因为我没有看到这是如何工作的,因为表达式返回 false,但函数 self 返回 true,有人可以向我解释为什么会这样。
这是编码问题
检查字符串是否具有相同数量的“x”和“o”。该方法必须返回布尔值,并且不区分大小写。字符串可以包含任何字符。
示例输入/输出
XO("ooxx") => true
XO("xooxx") => false
XO("ooxXm") => true
XO("zpzpzpp") => true // when no 'x' and 'o' is present should return true
XO("zzoo") => false
这是我的解决方案
function XO($s) {
$ka = false;
$s = strtolower($s);
if (strpbrk($s,'x') || strpbrk($s,'o')) {
if (substr_count($s,'x') == substr_count($s,'o')){
$ka = true;
}
}
else {
$ka = true;
}
return $ka ;
}
这是其他人发布的解决方案
function SO(string $s):bool {
return substr_count(strtolower($s),'o')==substr_count(strtolower($s),'x');
}
这确实是我的解决方案,即使字符是“zzz”,它也会返回 true。但是有人怎么能向我解释这一点
答: 暂无答案
评论
strtolower()
o
==
x