日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

一些前端小算法

發布時間:2023/12/31 HTML 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一些前端小算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(1)實現一個函數,判斷輸入是不是回文字符串

function isPlalindrome(input) {if (typeof input !== 'string') return false;return input.split('').reverse().join('') === input; }

原理:
每次輸入一個數據空格隔開,將輸入的數據變成數組在反轉,反轉后變成字符串和原始字符串比較,如果一樣則是回文數


(2)找出無重復字符的最長子串

解法一:維護數組



解法二:優化的Map

var lengthOfLongestSubstring = function(s) {let map = new Map(), max = 0for(let i = 0, j = 0; j < s.length; j++) {if(map.has(s[j])) {i = Math.max(map.get(s[j]) + 1, i)}max = Math.max(max, j - i + 1)map.set(s[j], j)}return max };

(3)數據結構棧

棧是一種遵從后進先出 (LIFO / Last In First Out) 原則的有序集合,它的結構類似如下:

function Stack() {let items = []this.push = function(e) { items.push(e) }this.pop = function() { return items.pop() }this.isEmpty = function() { return items.length === 0 }this.size = function() { return items.length }this.clear = function() { items = [] } }

查找: 從棧頭開始查找,時間復雜度為 O(n);

插入或刪除: 進棧與出棧的時間復雜度為 O(1);


(4)調用棧

調用棧是 JavaScript 用來管理函數執行上下文的一種數據結構,它記錄了當前函數執行的位置,哪個函數正在被執行。 如果我們執行一個函數,就會為函數創建執行上下文并放入棧頂。 如果我們從函數返回,就將它的執行上下文從棧頂彈出。 也可以說調用棧是用來管理這種執行上下文的棧,或稱執行上下文棧(執行棧)。


(5)棧空間與堆空間


(6)最小棧(包含getMin函數的棧)

在常數時間內檢索到最小元素的棧,即僅需保證 getMin 的時間復雜度為 O(1) 即可

var MinStack = function() {this.items = []this.min = null };// 進棧 MinStack.prototype.push = function(x) {if(!this.items.length) this.min = x this.min = Math.min(x, this.min)this.items.push(x) };// 出棧 MinStack.prototype.pop = function() {let num = this.items.pop() this.min = Math.min(...this.items)return num };// 獲取棧頂元素 MinStack.prototype.top = function() {if(!this.items.length) return nullreturn this.items[this.items.length -1] };// 檢索棧中的最小元素 MinStack.prototype.getMin = function() {return this.min };

(7)有效的括號


var isValid = function(s) {let map = {'{': '}','(': ')','[': ']'}let stack = []for(let i = 0; i < s.length ; i++) {if(map[s[i]]) {stack.push(s[i])} else if(s[i] !== map[stack.pop()]){return false}}return stack.length === 0 };

(8)刪除字符串中的所有相鄰重復項

事例:

輸入:"abbaca" 輸出:"ca" 解釋: 例如,在 "abbaca" 中,我們可以刪除 "bb" 由于兩字母相鄰且相同,這是此時唯一可以執行刪除操作的重復項。之后我們得到字符串 "aaca",其中又只有 "aa" 可以執行重復項刪除操作,所以最后的字符串為 "ca"

小前提:

  • 0<= S.length <= 20000
  • S 僅由小寫英文字母組成
    S代表該字符串
  • var removeDuplicates = function(S) {let stack = []for(c of S) {let prev = stack.pop()if(prev !== c) {stack.push(prev)stack.push(c)}}return stack.join('') };

    總結

    以上是生活随笔為你收集整理的一些前端小算法的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 麻豆成人精品国产免费 | 给我免费观看片在线电影的 | 中文字幕日日夜夜 | 亚洲av永久无码精品放毛片 | 裸体按摩www性xxxcom | 中出亚洲| 自拍 偷拍 欧美 | 欧美成年视频 | 国产网友自拍视频 | 国产精品无码久久久久久电影 | 国产色在线 | 日本久久久久久久久久 | 精品人妻无码一区二区三区 | 97狠狠操| 男女涩涩网站 | 超碰日本 | 免费大片黄在线观看 | 免费无码又爽又黄又刺激网站 | 一级全黄裸体免费观看视频 | 思思在线视频 | 91丝袜呻吟高潮美腿白嫩 | www.污在线观看 | av网址在线 | 2019国产精品视频 | 亚洲黄视频 | 国产精品第5页 | 国产精品久久久久9999 | 亚洲无av | 深爱五月激情网 | 五月天婷婷基地 | 国产一二精品 | 欧美成人一区二区三区片免费 | 国产成人一级 | 性感美女毛片 | 日韩精品一区二区亚洲av观看 | 让男按摩师摸好爽视频 | 日本三区在线 | 日本高清视频一区二区 | 欧美xxxxxx片免费播放软件 | 欧美一区二区激情视频 | 国产成人精品一区二区三区在线 | 俄罗斯女人裸体性做爰 | 国产午夜麻豆影院在线观看 | 欧洲免费毛片 | 国产精品久免费的黄网站 | 黑人巨大精品欧美黑白配亚洲 | 久久久久色 | 免费a在线 | 免费污片网站 | 奇米影视久久久 | 国产黄免费 | 国产麻豆一区 | 国内精品视频在线播放 | 香蕉视频一级片 | 播放男人添女人下边视频 | 黄色a免费 | 玖玖爱免费视频 | 娇小6一8小毛片 | 波多野结衣一区二 | 日本精品在线播放 | 久久午夜夜伦鲁鲁片 | 91精品婷婷国产综合久久 | 色综合久久五月 | 99久久网站 | 女人被狂躁c到高潮 | 最近中文字幕免费mv视频7 | 亚洲av无码乱码在线观看富二代 | 91麻豆免费看 | 影音先锋人妻啪啪av资源网站 | 欧美精品成人 | 国产三级国产精品 | 久久久香蕉网 | 精品无码久久久久久久久成人 | 欧洲一级黄色片 | 日本xxxxxxxxx69| 国产91精品久久久久久久网曝门 | 黄色应用在线观看 | 嫩草av久久伊人妇女超级a | 91麻豆精品秘密入口 | 懂色一区二区三区 | 色噜噜狠狠一区二区三区果冻 | 国产在线观看h | 女人脱了内裤趴开腿让男躁 | 青青草国产精品视频 | 日韩午夜在线播放 | 人与动物2免费观看完整版电影高清 | 国产亚韩 | 亚洲精品国产精品乱码不卡 | 久久高清精品 | 成人精品一区日本无码网 | 日韩欧美在线免费观看 | 2018国产大陆天天弄 | 五月婷婷在线观看视频 | 国产亚洲精品久久777777 | 稀缺小u女呦精品呦 | 免费看欧美一级片 | 午夜电影网一区 | 极品久久久久 | 五月丁香久久婷婷 |