Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Палиндром, PHP vs C! 
V
    Опции темы
Source
Дата 10.4.2009, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеттабайт



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 3.8.2006
Где: Везде

Репутация: 1
Всего: 1



Здравствуйте!

Помогите пожалуйста новичку с реальзацией PHP-скрипта проверки строки на палиндромность.

В С++ это решается с помощью математических операций, я пытался реализовать это на ПХП, с помощью простых мат.операций и встроенной функции strrev() но у меня не вышло. Байда в том что целочисленные переменные нужно превратить в строковые и потом сравнивать... Мой код считает что все введеные мною данные палиндромны.

Код

// Запишим данные в 2 переменные.
$val = $_POST['poly']; 
$param = strrev($_POST['poly']);

//Проверка на правильность ввода.
//Конечно нужно писать регвыр что бы правильно проверить и удалить спецсимволы и пробелы, но я здесь представил код проще.
if (isset($val) || strlen($val) > 16)
{    
    if (strrev($val) == $param)
    {
        print ("Число $val палиндромно!");
                unset($val, $param);
                        
    }
    else
    {
                print ("Число $val не палиндромно!");
        unset($val, $param);
    }
}
else 
{
    print ('Не надо со мной шутить! Вы должны ввести ТОЛЬКО целое число!');
    unset($val, $param);
}


Подскажите, как вообще можно реализовать проверку на палиндромность на ПХП!


PM   Вверх
enof
Дата 11.4.2009, 00:00 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



Сначала написал так:
Код

<?
$str = "404";
$pattern_s = "#";
$pattern_e = "";
$len = strlen($str)/2;
for($i = floor($len); $i > 0; $i--)
{
    $pattern_s .= "(.)";
    $pattern_e .= "\\".$i;
}
if(is_double($len)) $pattern_s .= ".";
$pattern = $pattern_s . $pattern_e . "#";
if(preg_match($pattern, $str))
    echo "Палиндром";
else
    echo "Нет";
?>

Но потом подумал, что все намного проще:
Код

<?
$str = "404";
$len = strlen($str)/2;
$s = substr($str, 0, floor($len));
$e = substr($str, ceil($len));
if($s == strrev($e))
    echo "Палиндром";
else
    echo "Нет";
?>

И тут я понял, что я туплю smile  smile 
Код

$str = "404";
if($str == strrev($str))
    echo "Палиндром";

PM MAIL ICQ Skype   Вверх
Source
Дата 11.4.2009, 01:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеттабайт



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 3.8.2006
Где: Везде

Репутация: 1
Всего: 1



Цитата

Код

$str = "404";
if($str == strrev($str))
    echo "Палиндром";



enof, Все гениальное просто. Спасибо!

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0853 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.