欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用JavaScript字符串解決回文數(shù)的方案詳解

 更新時(shí)間:2024年05月07日 09:15:14   作者:長安故里_  
這篇文章主要介紹了使用JavaScript字符串解決回文數(shù)的方案,JavaScript中的字符串是一種數(shù)據(jù)類型,用于表示文本數(shù)據(jù),字符串可以包含任意字符序列,包括字母、數(shù)字、符號和空格,靈活掌握字符串的解決問題思想,巧用字符串解決回文數(shù),需要的朋友可以參考下

前言:

JavaScript中的字符串是一種數(shù)據(jù)類型,用于表示文本數(shù)據(jù)。字符串可以包含任意字符序列,包括字母、數(shù)字、符號和空格。靈活掌握字符串的解決問題思想,巧用字符串解決回文數(shù)。

正文

1.如何將字符串中的一個(gè)字符移除掉

思路一:想想字符串中是否自帶一個(gè)方法將某一個(gè)字符移除?借問搜索引擎,沒有此方法。

思路二:JS中是否有別的數(shù)據(jù)結(jié)構(gòu)能夠移除其中的一個(gè)字符,再將字符串轉(zhuǎn)化為為那個(gè)數(shù)據(jù)結(jié)構(gòu)。是的,數(shù)組有這個(gè)功能,只要將字符串轉(zhuǎn)化為數(shù)組就行。

實(shí)現(xiàn)功能:

let str = 'hello world'

console.log(str.split(''));

split將字符串中的每一個(gè)字符都作為一個(gè)元素放到數(shù)組中去。緊接著如何移除一個(gè)字符 e ?

let str = 'hello world'

console.log(str.split('').splice(1,1));

會發(fā)現(xiàn),這并不能移除 e 而是返回下標(biāo)1的字符 e 。這里可以自定義一個(gè)數(shù)組進(jìn)行移除。

let str = 'hello world'

let strArr = str.split('')
strArr.splice(1,1)
console.log(strArr);

通過定義一個(gè) strArr 的數(shù)組,在進(jìn)行下標(biāo)的移除,此時(shí) strArr 不會在受到影響。

但需要面臨的問題是,這是數(shù)組下的splice方法,如何使數(shù)組轉(zhuǎn)化為字符串?仍是兩種思路

思路一:數(shù)組自帶一個(gè)方法住轉(zhuǎn)化為字符串(join)

以橫杠的方式進(jìn)行字符串的拼接。

思路二:自己手搓一個(gè)方法,將數(shù)組中的元素一個(gè)一個(gè)轉(zhuǎn)化為字符儲存在字符串中。

let str = 'hello world'

function spliceStr (str,index) {
    let newStr = ''
    for (let i = 0;i < str.length;i++) {
        if( i != index)
        newStr += str[i]
    }
    return newStr
} 

console.log(spliceStr(str,1));

給出 str 的一個(gè)下標(biāo),遍歷每一個(gè)字符串,將每一個(gè)str 的下標(biāo)加到 newStr 中去,但是為了不讓,每一個(gè)都加到 newStr 中,給出一個(gè)判斷語句,if( i != index),滿足所有的條件才加到里面去,最后返回結(jié)果。

結(jié)果符合預(yù)期。

2.切割一個(gè)字符串(slice)

字符串中存在一個(gè)方法自己進(jìn)行切割其中的字符,slice 。

let str = 'hello world'

console.log(str.slice(1,3));
console.log(str);

這里會發(fā)現(xiàn),字符串本身不會受到影響,會將切割的字符移除。并且,這是一個(gè)左閉右開的區(qū)間【即包含下標(biāo)一的字符不包含下標(biāo)三的。】

這里就是大概字符串的介紹。

3.如何使用字符串解決回文數(shù)【從右到左和從左到右一樣】

let str = 'ababa'

function isPalindrome(str) {
    let arr = str.split('').reverse()
    let newStr = arr.join('')
   if(str == newStr){
    console.log();
    return true
   }
}
isPalindrome(str)

將字符串轉(zhuǎn)化為數(shù)組 let arr = str.split('').reverse(),然而數(shù)組是復(fù)雜數(shù)據(jù)類型,無法進(jìn)行直接相等比較,在將數(shù)組轉(zhuǎn)化為字符串這種簡單數(shù)據(jù)類型 let newStr = arr.join(''),在將if相等比較,最后返回true。

let str = 'ababa'

function isPalindrome(str) {
    let i = 0
    let j = length - 1

    while(i < j){
        if(str[i] === str[j]){
            i++
            j--
        }else {
            return false
        }
    }
}

isPalindrome(str)

這里左右手各拿一個(gè)數(shù),依次遍歷比較兩個(gè)值是否相等?若不相等,則返回false,否則就是true,就判斷出這是回文數(shù)。

結(jié)果沒有返回false,所以沒問題。

總結(jié)

理解字符串做算法題的思路:1:從自身方法中去找 2:自己手搓一個(gè)方法來解決問題。

這兩個(gè)思路很重要,再就是從左右兩邊用指針來進(jìn)行回文數(shù)的比較。

以上就是使用JavaScript字符串解決回文數(shù)的方案詳解的詳細(xì)內(nèi)容,更多關(guān)于JavaScript字符串解決回文數(shù)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 前端常用6種數(shù)據(jù)加密方式的使用詳細(xì)講解

    前端常用6種數(shù)據(jù)加密方式的使用詳細(xì)講解

    在前端開發(fā)中,常用的數(shù)據(jù)加密技術(shù)包括Base64編碼、MD5哈希、SHA-256哈希、AES對稱加密、RSA非對稱加密和HMAC消息認(rèn)證碼,這些加密方式提供了不同層次的數(shù)據(jù)安全保護(hù),適用于不同的安全需求和場景,需要的朋友可以參考下
    2024-09-09
  • ts封裝axios最佳實(shí)踐示例詳解

    ts封裝axios最佳實(shí)踐示例詳解

    這篇文章主要為大家介紹了ts封裝axios最佳實(shí)踐示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 淺談JS函數(shù)節(jié)流防抖

    淺談JS函數(shù)節(jié)流防抖

    本篇文章主要介紹了JS函數(shù)節(jié)流防抖,函數(shù)節(jié)流和函數(shù)防抖為了解決類似需求應(yīng)運(yùn)而生的,有興趣的可以了解一下
    2017-10-10
  • 微信小程序如何播放騰訊視頻的實(shí)現(xiàn)

    微信小程序如何播放騰訊視頻的實(shí)現(xiàn)

    這篇文章主要介紹了微信小程序如何播放騰訊視頻的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 利用JavaScript實(shí)現(xiàn)3D可旋轉(zhuǎn)粒子矩陣效果

    利用JavaScript實(shí)現(xiàn)3D可旋轉(zhuǎn)粒子矩陣效果

    dat.gui.js是一個(gè)一個(gè)輕量級的圖形用戶界面庫,或者說GUI組件,只有幾十KB,可以用于創(chuàng)建操作控制三維場景的菜單欄等。本文將利用dat.gui.min.js實(shí)現(xiàn)3D可旋轉(zhuǎn)粒子矩陣效果,感興趣的可以了解一下
    2022-06-06
  • JS設(shè)置自定義快捷鍵并實(shí)現(xiàn)圖片上下左右移動(dòng)

    JS設(shè)置自定義快捷鍵并實(shí)現(xiàn)圖片上下左右移動(dòng)

    這篇文章主要介紹了JS設(shè)置自定義快捷鍵并實(shí)現(xiàn)圖片上下左右移動(dòng),文中通過使用自定義熱鍵或者使用鍵盤上下左右鍵移動(dòng)圖片,以此來實(shí)現(xiàn)此功能,需要的朋友可以參考下
    2019-10-10
  • 你可能不知道的CORS跨域資源共享

    你可能不知道的CORS跨域資源共享

    這篇文章主要給大家介紹了關(guān)于CORS跨域資源共享的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用CORS具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 禁止拷貝網(wǎng)頁內(nèi)容的js代碼

    禁止拷貝網(wǎng)頁內(nèi)容的js代碼

    如何禁止拷貝網(wǎng)頁內(nèi)容,想維護(hù)下自己的版權(quán),下面有個(gè)不錯(cuò)的方法,大家可以學(xué)習(xí)下
    2014-01-01
  • js計(jì)算最大公約數(shù)和最小公倍數(shù)代碼實(shí)例

    js計(jì)算最大公約數(shù)和最小公倍數(shù)代碼實(shí)例

    這篇文章主要介紹了js計(jì)算最大公約數(shù)和最小公倍數(shù)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 小議javascript 設(shè)計(jì)模式 推薦

    小議javascript 設(shè)計(jì)模式 推薦

    最近重新溫習(xí)了一次《javascript設(shè)計(jì)模式》,確實(shí)是一本好書,每次看都有不同的領(lǐng)悟,每次領(lǐng)悟到的都受益匪淺,無怪古圣人都說學(xué)無止鏡了,僅以“加油,好嗎?”共勉!
    2009-10-10

最新評論