首页 > 其他分享 >双端队列-案例-回文-new

双端队列-案例-回文-new

时间:2024-04-03 13:45:41浏览次数:13  
标签:count lowCount return items .# let 双端 new 回文

<!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Document</title> </head> <body>     <script>
        // double-ended    双端队列
        class DeQueue {
            #items = {}             #lowCount = 0             #count = 0
            // 出队             removeFront(){                 if(this.isEmpty())  return undefined                 let res = this.#items[this.#lowCount]                 delete this.#items[this.#lowCount]                 this.#lowCount++                 return res             }
            // 入队             addBack(data){                 this.#items[this.#count] = data                 this.#count++             }
            addFront(data){                 // 1 如果为空                 if(this.isEmpty()) {                     this.addBack(data)                 } else {                         // 2 lowcount > 0                     if(this.#lowCount > 0){                         this.#lowCount--                         this.#items[this.#lowCount] = data                     } else  {                         // 2 lowcount = 0                         for(let i=this.#count;i>0;i--){                             this.#items[i] = this.#items[i-1]                         }                         this.#items[0] = data                         this.#count++                     }
                }             }
            removeBack(){                 if(this.isEmpty()) {                     return undefined                 }                 this.#count--                 const res = this.#items[this.#count]                 delete this.#items[this.#count]                 return res             }
            // 队头             peekFront(){                 return this.#items[this.#lowCount]             }
            peekBack(){                 if(this.isEmpty()) {                     return undefined                 }                 return this.#items[this.#count - 1]             }
            isEmpty(){                 return this.size() === 0             }
            size() {                 return this.#count - this.#lowCount             }
            clear() {                 this.#items = {}                 this.#lowCount = 0                 this.#count = 0                 }
                toString(){                 let str = ''                 for(let i = this.#lowCount;i<this.#count;i++){                     str += `${this.#items[i]} `                 }                 return str             }         }
       
        // dad         // 假似真时真似假         function test(str){             const lowstr  = str.toLocaleLowerCase().split(' ').join('')             let dequeue = new DeQueue()             for(let i=0;i<lowstr.length;i++){                 dequeue.addBack(lowstr[i])             }            console.log(dequeue)
            let isEqual = true             while(dequeue.size() > 1){                 if(dequeue.removeFront() !== dequeue.removeBack()){                     isEqual = false                     break                 }             }
            return isEqual         }                 // let str = 'd a  A   d t d a a D'         let str = '假似真时真似假'         console.log( test(str))
    </script> </body> </html>

标签:count,lowCount,return,items,.#,let,双端,new,回文
From: https://www.cnblogs.com/eric-share/p/18112499

相关文章

  • 循环列表-new
    <!DOCTYPEhtml><htmllang="en"><head>  <metacharset="UTF-8">  <metahttp-equiv="X-UA-Compatible"content="IE=edge">  <metaname="viewport"content="width=d......
  • 双向链表-new
    <!DOCTYPEhtml><htmllang="en"><head>  <metacharset="UTF-8">  <metahttp-equiv="X-UA-Compatible"content="IE=edge">  <metaname="viewport"content="width=d......
  • 集合set-new
    <!DOCTYPEhtml><htmllang="en"><head>  <metacharset="UTF-8">  <metahttp-equiv="X-UA-Compatible"content="IE=edge">  <metaname="viewport"content="width=d......
  • 洛谷4555-回文串
    link:https://www.luogu.com.cn/problem/P4555题:顺序和逆序读起来完全一样的串叫做回文串。比如acbca是回文串,而abc不是:abc的顺序为abc,逆序为cba,不相同。输入长度为\(n\)的串\(S\),求\(S\)的最长双回文子串\(T\),即可将\(T\)分为两部分\(X,Y\)(\(|X|,|Y|≥1\))且\(X......
  • 今早,这个中国人做的开源项目被YC的hacker news收录了!
    众所周知,YC在创业者心中的地位,它孕育出了openai、airbnb等众多硅谷知名企业。就在今早,YC的hackernews把这个由中国人做的开源项目收录了!这是一个什么项目?先上开源地址:https://github.com/saasfly/saasfly简介中可以看出,这是一个具备足够创新的“下一代SaaS模版”,旨在帮助使......
  • NewStarCTF-firstweek
    一、Crypto-brainfuck1.附件内容如下。++++++++[>>++>++++>++++++>++++++++>++++++++++>++++++++++++>++++++++++++++>++++++++++++++++>++++++++++++++++++>++++++++++++++++++++>++++++++++++++++++++++>++++++++++++++++++++++++>+++++......
  • 论文阅读:A new approach solve the multi-product multi-period inventory lot sizing
    论文:Anewapproachsolvethemulti-productmulti-periodinventorylotsizingwithsupplierselectionproblem期刊:Computer&OperationsResearch1.模型建立:具有供应商选择问题的多产品多周期库存批量确定1.1问题定义将具有供应商选择问题的多产品多周期库存批......
  • 代码随想录算法训练营第二十七天(回溯3)|39. 组合总和、40. 组合总和 II、131. 分割回文
    文章目录39.组合总和解题思路源码40.组合总和II解题思路源码131.分割回文串解题思路源码39.组合总和给你一个无重复元素的整数数组candidates和一个目标整数target,找出candidates中可以使数字和为目标数target的所有不同组合,并以列表形式返回......
  • Leetcode 回文子串
    Day16学习中心扩展法classSolution{publicintcountSubstrings(Strings){//从中心扩展,intcount=0;intn=s.length();//字符串长度分奇数和偶数,但回文中心的可能性是确定的//枚举所有的回文中心......
  • std::make_shard 和 new 的比较
    std::make_shared和new都用于动态分配内存并返回指向该内存的指针,但它们之间有一些重要的区别。下面详细解释它们之间的差异:内存分配方式:std::make_shared:该函数是一个模板函数,会在内存中分配一块足够大的内存来存储对象及其控制块(用于跟踪引用计数等信息),然后在此内存上构......