Php 查找字符串是否为回文。约束:不将字符串存储在任何额外变量中
检查我尝试过的代码 我的问题和其他问题有点不同。我想为回文生成一个高效的代码。因此我添加了一些约束。约束:不将字符串存储在任何额外变量中。只使用一个循环。我在php中尝试过,但没有呈现输出。我在图片中使用了相同的逻辑。我是php新手。我需要一些帮助来检查我的代码是否正确,如果错误,可以进行哪些更改?无论是php还是任何其他oops语言,我只需要检查我的逻辑是否正确 PHP代码:Php 查找字符串是否为回文。约束:不将字符串存储在任何额外变量中,php,algorithm,palindrome,Php,Algorithm,Palindrome,检查我尝试过的代码 我的问题和其他问题有点不同。我想为回文生成一个高效的代码。因此我添加了一些约束。约束:不将字符串存储在任何额外变量中。只使用一个循环。我在php中尝试过,但没有呈现输出。我在图片中使用了相同的逻辑。我是php新手。我需要一些帮助来检查我的代码是否正确,如果错误,可以进行哪些更改?无论是php还是任何其他oops语言,我只需要检查我的逻辑是否正确 PHP代码: class user{ public function __construct(){ $this->
class user{
public function __construct(){
$this->palindrome();
}
public function palindrome(){
str ="abba";
i=0;
while(str[i] == str[strlen(str-1)-i])
{
i++;
}
if(i > strlen(str)/2)
{
return 0;
}
}
}
$obj = new user;
一些小错误:
str[strlen(str-1)-i]
=>strlen(str-1-i])
检查完成后,您不会终止循环。 您可以将if语句移动到循环中并返回true。
或者使用for循环0->length/2,如果字符不相等,则返回false。保留逻辑,更正语法错误
<?php
class user {
public function __construct() {
if ($this->palindrome()) {
echo 'Yes, Palindrome';
} else {
echo 'Not a palindrome';
}
}
public function palindrome() {
//Need $ symbol
$str = "abba";
$i = 0;
// \/
while ($str[$i] == $str[strlen($str) - ($i + 1)]) {
$i++;
if ($i > strlen($str) / 2) {
return 1;
}
}
return 0;
}
}
;
$obj = new user();
我更改了结构,但保留了您的逻辑
<?php
class User {
private $str;
public function __construct($str) {
$this->str = $str;
}
public function palindrome() {
$i = 0;
while ($this->str[$i] == $this->str[strlen($this->str) - ($i + 1)]) {
$i++;
if ($i > strlen($this->str) / 2) {
return 1;
}
}
return 0;
}
}
$obj = new User("abba");
echo $obj->palindrome(); // can be zero or one
这个解决方案需要是OO吗?不需要。如果是过程性的,那就好了。我会试着在以后把它转换成OO。谢谢。以后尽量只使用必要的标签。当你标记一组语言而不需要任何语言时,大多数人认为它是“垃圾邮件标签”。是的,当然。我会记住这一点,为什么不只是字符串,与原始的比较呢?不需要额外的变量,根本不需要循环,但我仍然不知道是否满足了所有约束条件。我认为您的逻辑只使用一个循环和一个变量来存储字符串。也许是这样。