- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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
<?php
class Palindrome {
protected $text;
function __construct($text) {
$this->text = $text;
}
protected function isPalindrome($text) {
$string = mb_strtolower(preg_replace("/[^A-Za-zА-Яа-я0-9]/", "", $text));
$status = mb_strlen($string) > 2?($string == $this->reverce($string)):false;
return (object) [
'status' => $status,
'string' => $string,
'original' => trim($text, ' ')
];
}
protected function comparingStrings($first_string, $last_string) {
$comparing = mb_strlen($first_string) > mb_strlen($last_string);
return $comparing?$first_string:$last_string;
}
protected function findPalindrome()
{
$palindrome = mb_strlen($this->text);
$result = false;
for ($i = 0; $i < $palindrome; $i++) {
$palindrome_c = $palindrome-$i;
for ($j = 0; $j < $palindrome_c; $j++) {
$find = $this->isPalindrome(mb_substr($this->text, $j, $palindrome_c, "UTF-8"));
if ($find->status) {
$result = $this->comparingStrings($find->original, $result);
}
}
}
return $result;
}
public function view() {
if ($this->isPalindrome($this->text)->status)
return $this->text;
if ($palindrome = $this->findPalindrome())
return $palindrome;
return mb_substr($this->text, 0, 1);
}
}
$view = 'Введите палиндром!';
if (isset($_POST['text'])) {
$palindrome = new Palindrome($_POST['text']);
$view = $palindrome->view();
}
?>
<html>
<head>
<title>Palindrome</title>
</head>
<body>
<div><?=$view?></div>
<form action="?" method="POST">
<input type="text" name="text">
<input type="submit">
</form>
</body>
</html>
HiNeX 17.11.2015 14:47 # 0
kgm-rj 17.11.2015 15:37 # +1
fixed
HiNeX 17.11.2015 15:47 # 0
kgm-rj 17.11.2015 15:55 # 0