-
Notifications
You must be signed in to change notification settings - Fork 0
/
palindrom.php
85 lines (70 loc) · 1.99 KB
/
palindrom.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
/**
* Проверка слова, является ли оно палиндромом.
*
* @author Alexandr Toropov <[email protected]>
*/
/**
* Функция проверки слова на палиндром
*
* @param string $word
* @return bool
*/
function isPalindrome(string $word): bool {
if (strlen($word) <= 1) {
return false;
}
//если последние и первые буквы не равны, возвращаем false
if ($word[0] != $word[strlen($word) - 1]) {
return false;
}
//обрезаем последний и первый символ в строке и переворачиваем ее
$w = strrev(substr($word, 1));
$w = substr($w, 1);
$res = true;
if ((!isPalindrome($w)) && (strlen($w) != 0)) {
$res = false;
}
return $res;
}
$str = "abgrrgba";
if (isPalindrome($str)) {
echo $str. ' - палиндром!<br>';
} else {
echo $str. ' - не палиндром!<br>';
}
$str2 = "afszpovsfa";
if (isPalindrome($str2)) {
echo $str2 . ' - палиндром!<br>';
} else {
echo $str2 . ' - не палиндром!<br>';
}
/**
* Функция для проверки слова на палиндром
*
* @param string $word
* @return bool
*/
function isPalindrome2(string $word): bool
{
$word = strtolower($word); //преобразуем слово в нижний регистр
$word = str_replace(' ', '', $word); //удаляем пробелы из слова
$reversed_word = strrev($word);
if ($word == $reversed_word) {
return true;
} else {
return false;
}
}
$str3 = 'radar';
if (isPalindrome2($str3)) {
echo $str3 . ' - палиндром! <br>';
} else {
echo $str3 . ' - не палиндром!<br>';
}
$str4 = 'arbuz';
if (isPalindrome2($str4)) {
echo $str4 . ' - палиндром! <br>';
} else {
echo $str4 . ' - не палиндром!<br>';
}