需求:
从a,b这两个数字中随机取一个数字,组成一串10个字符的字符串。要求:
1、相邻的两个字母不能相同(0除外),如果随机取到相同的2个连续的字母,需要把后面的字母转换为0,直到出现另外一个不同的字母为止,比如循环后abbb这样的结果,需要转换成ab00;
2、不能在循环之外处理重叠的字母,此操作需要在生成字符串的时候完成。最后的正确结果举例:0a000b00ab,或者abab0000ba谢谢!

解决方案 »

  1.   

    $last = '';
    $r = '';
    for($i=0; $i<10; $i++) {
      $t = rand(0, 1)>0.5 ? 'a' : 'b';
      $r .= $t == $last ? '0' : $t;
      $last = $t;
    }
    echo $r;
      

  2.   

    <?phpfunction chkStr($a,$b)
    {
        $str='';
        $c='';
        $d='';
        $arr=array($a,$b);
        while(strlen($str)<10) 
        {
            $d=rand(0,1);
            $str.=($c==$arr[$d]) ? ("0") : ($arr[$d]); 
            $c=($c==$arr[$d]) ? ("0") : ($arr[$d]);      
        } 
        return $str;  
    }echo chkStr(a,b);?>