嘿嘿,标题党又来了。话说朋友问我个问题,如何判断3个数字是顺的?比如 123 321 456 654 465 ...901 901 019也就是根据数值判断是3个数字是否是相连内的成员我的想法是 先分割,取得3个数里最小的,然后判断剩下的两个是否都在里面
比如 321 取得1 然后判断 23 是否存在,如果存在就能确定.特殊的901 直接定义一个数组进行判断,判断是否包含0 如果是 判断是否包含9和1 ...(这里可能需要排除012)不知道各位有没有其他更简便的方式?
比如 321 取得1 然后判断 23 是否存在,如果存在就能确定.特殊的901 直接定义一个数组进行判断,判断是否包含0 如果是 判断是否包含9和1 ...(这里可能需要排除012)不知道各位有没有其他更简便的方式?
function foo($s){
$arr=str_split($s);
if(in_array('9',$arr))
return (array_sum($arr)==10) ;
sort($arr,SORT_NUMERIC);
return array_sum($arr)==$arr[1]*3 ;
}
var_dump(foo('019')); //bool(true)
var_dump(foo('243')); //bool(true)
可以有:
$t = str_split($n);
if( array_sum($t) == (reset($t)+end($t))*count($t)/2 ) echo 'ok';但是对于认定 901、109 为连续,就超出一般的认知了
$samples = array(123, 321, 456, 654, 465, 901, 109, '019', 890, 908, 135, 250);
foreach ( $samples as $value ) {
$ds = str_split( $value );
sort( $ds );
$ds = implode( '', $ds );
$result = ( strstr( $temp, $ds ) !== false ) ? 'yes' : 'no';
echo "{$value} - {$ds} : {$result}<br>";
}
function foo($s){
$arr=str_split($s);
if(in_array('9',$arr) && in_array('0',$arr))
return (array_sum($arr)==10 || array_sum($arr)==17) ;
sort($arr,SORT_NUMERIC);
return array_sum($arr)==$arr[1]*3 ;
}
var_dump(foo('019')); //bool(true)
var_dump(foo('243')); //bool(true)
var_dump(foo('089')); //bool(true)