gpt4 book ai didi

javascript - 如何在 JavaScript 中使用 FILO 检查回文?

转载 作者:行者123 更新时间:2023-12-03 03:25:57 25 4
gpt4 key购买 nike

我需要检查文本是否是回文,通过堆栈的概念,我有一个创建堆栈的函数,另一个函数将检查它是否是回文堆栈单词并取消堆栈。

问题是我不知道如何继续进行此验证。

我的代码:

<html>

<head>
<script type ="text/javascript" />
function FILO(){
this.stack = new Array();

this.Push = function(obj){
this.stack[this.stack.length] =obj;
}

this.Pop =function(){
if(this.stack.length>0){
var obj = this.stack[this.stack.length - 1];
this.stack.splice(this.stack.length -1,1);
return obj;
}else {
alert("Theres no objects in the stack");

}
}
}

function palindrome() {
var mystack = new FILO();
var text1;
var text2;
var i;
var t;
text1 = prompt("Type a text: ");
i = text1.length;
t = text1.length;

do{
mystack.Push(text1.substr(t-i,1));
i--;
}while(i>0);

do{
text2 = mystack.Pop();
document.write(text2, "</br>");
}while(i>0);

if(text1 === text2) {
alert("It is a palindrome");
}
else {
alert("It's not a palindrome");
}

}



</script>

</head>


<body>
<h1>Verification of Palindrome </h1>
<p>Press the button to see if a word is a palindrome or not</p>

<form>
<input type = "button" onClick ="palindrome()" value = "Verifiy">
</form>

</body>
</html>

但是这段代码不起作用,因为在输入时它表示堆栈中没有对象,并且它们最终不会被插入,因此我可以取消堆栈。我怎样才能做到这一点?

PS:我是 JavaScript 新手,因此代码可能会很困惑,对此表示抱歉。

最佳答案

你们其实很亲近。您只需将弹出的字母连接在一起,然后与text1进行比较(您已经这样做了)。

您的第二个 do while 中也有一个错误,您使用与第一个循环相同的迭代器 i ,而您可能应该使用您的 t code> 变量并递减它。这是带有固定代码的示例

function FILO() {
this.stack = new Array();

this.Push = function(obj) {
this.stack[this.stack.length] = obj;
}

this.Pop = function() {
if (this.stack.length > 0) {
var obj = this.stack[this.stack.length - 1];
this.stack.splice(this.stack.length - 1, 1);
return obj;
} else {
alert("Theres no objects in the stack");

}
}
}

function palindrome() {
var mystack = new FILO();
var text1;
var text2 = "";
var i;
var t;
text1 = prompt("Type a text: ");
i = text1.length;
t = text1.length;

do {
mystack.Push(text1.substr(t - i, 1));
i--;
} while (i > 0);

do {
text2 += mystack.Pop(); //Here this should be += instead of =
t--
document.write(text2, "</br>");
} while (t > 0); //use and decrement t variable in this do while

if (text1 === text2) {
alert("It is a palindrome");
} else {
alert("It's not a palindrome");
}

}
<html>
<head>
</head>
<body>
<h1>Verification of Palindrome </h1>
<p>Press the button to see if a word is a palindrome or not</p>
<form>
<input type="button" onClick="palindrome()" value="Verifiy">
</form>
</body>
</html>

关于javascript - 如何在 JavaScript 中使用 FILO 检查回文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46329334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com