代码拉取完成,页面将自动刷新
class Queue {
constructor() {
this.dataSource = [];
this.size = 0;
}
// enqueue:向队列尾增加元素
enqueue(element) {
this.dataSource.push(element);
this.size++;
}
// dequeue: 删除队头元素
dequeue() {
if (this.empty()) {
this.size--;
return this.dataSource.shift();
}
}
// empty: 判断是否为空队列
empty() {
if (this.size > 0) {
return true;
}
return false;
}
// front: 返回队头元素
front() {
if (this.empty()) {
return this.dataSource[0];
}
}
// back: 返回队尾元素
back() {
if (this.empty()) {
return this.dataSource[this.size - 1];
}
}
// length: 返回队列元素总数
length() {
return this.size;
}
// clear: 清空队列
clear() {
this.dataSource.length = 0;
this.size = 0;
}
// toString: 返回队列所有元素
toString() {
return this.dataSource;
}
}
// 扩展队列,使得队列可以从两端删除添加元素
class Deque extends Queue {
// unshift:向队头添加元素
unshift(element) {
this.size++;
this.dataSource.unshift(element);
}
// pop: 删除队尾元素
pop() {
if (this.empty()){
this.size--;
return this.dataSource.pop();
}
}
}
// 使用扩展队列Deque判断单词是否为回文
function isPalindrome(str){
const deque = new Deque();
let flag = true;
for(let i=0;i<str.length;i++) {
deque.enqueue(str[i]);
}
while (deque.size>=2) {
if (deque.pop() !== deque.dequeue()) {
flag = false;
break;
} else{
flag = true;
}
}
if (!flag) {
console.log(str+':不是回文');
} else console.log(str+':是回文');
}
isPalindrome('aabbcc');
isPalindrome('aabbaa');
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。