Advertisement
zero50x

Конечный автомат мой

Jan 2nd, 2017
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 0.90 KB | None | 0 0
  1. <?php
  2.  
  3. /**
  4.  * Исходная строка, задача конечного автомата найти:
  5.  * - в первом случае 2 буквы f
  6.  * - во втором 2 любые буквы подряд
  7. **/
  8. $str = 'abcdeffghi';
  9.  
  10. ########## Первый вариант ##########
  11.  
  12. $state = 0;
  13.  
  14. for ($i = 0; $i < strlen($str); $i++) {
  15.     if($str[$i] === 'f'){
  16.         $state = 1;
  17.     } else {
  18.         $state = 0;
  19.     }
  20.    
  21.     if($str[$i] === 'f' && $state === 1){
  22.         echo 'Double "f" found';
  23.         break;
  24.     }
  25. }
  26.  
  27.  
  28. ########## Второй вариант ##########
  29.  
  30. function dubleletter($prev, $this){
  31.     if($prev === $this){
  32.         return 1;
  33.     } else {
  34.         return $this;
  35.     }
  36. }
  37.  
  38. $var = 0;
  39. while ($k < strlen($str)+1) {
  40.     $var = dubleletter($var, $str[$k]);
  41.     if($var === 1){
  42.         echo 'Double letter found';
  43.     } else{
  44.         $k++;
  45.     }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement