国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

數(shù)據(jù)結(jié)構(gòu)與算法之字符串: Leetcode 557. 反轉(zhuǎn)字符串中的單詞 III (Typescript版)

這篇具有很好參考價值的文章主要介紹了數(shù)據(jù)結(jié)構(gòu)與算法之字符串: Leetcode 557. 反轉(zhuǎn)字符串中的單詞 III (Typescript版)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

翻轉(zhuǎn)字符串中的單詞 III

  • https://leetcode.cn/problems/reverse-words-in-a-string-iii/

描述

給定一個字符串 s ,你需要反轉(zhuǎn)字符串中每個單詞的字符順序,同時仍保留空格和單詞的初始順序。

示例 1:

輸入:s = "Let's take LeetCode contest"
輸出:"s'teL ekat edoCteeL tsetnoc"

示例 2:

輸入: s = "God Ding"
輸出:"doG gniD"

提示:

  • 1 <= s.length <= 5 * 1 0 4 10^4 104
  • s 包含可打印的 ASCII 字符。
  • s 不包含任何開頭或結(jié)尾空格。
  • s 里 至少 有一個詞。
  • s 中的所有單詞都用一個空格隔開。

Typescript版算法實現(xiàn)

1 )方案1

function reverseWords(s: string): string {
    return s.length ? s.match(/[\S]+/g).map((item: string) => {
        return item.split('').reverse().join('')
    }).join(' ') : ''
};

2 ) 方案2

function reverseWords(s: string): string {
    if (!s.length) return ''
    return s.split(' ').map((item:string) => {
        return item.split('').reverse().join('')
    }).join(' ')
}

3 ) 方案3

function reverseWords(s: string): string {
    if (!s.length) return ''
      return s.split(/\s/g).map((item: string) => {
        return item.split('').reverse().join('')
    }).join(' ')
}

4 ) 方案4

function reverseWords(s: string): string {
    if (!s.length) return ''
      return s.match(/[\w']+/g).map((item: string) => {
        return item.split('').reverse().join('')
    }).join(' ')
}

注意這里的方案4,是有問題的,能滿足示例字符串,但是滿足不了一些特殊字符串,有一些英語句子中可以加一些特指字符,比如 @,$, \ 等,語法和寫法上會有區(qū)別,最簡單的來說 , .等字符都沒有囊括在內(nèi)

相關(guān)api

const { split, match } = String.prototype
const { map, reverse, join } = Array.prototype

總結(jié)

  • 注意邊界非空判斷
  • 將字符串轉(zhuǎn)換成數(shù)組,這里是一維數(shù)組
  • 在數(shù)組內(nèi)的每個字符串元素轉(zhuǎn)換成數(shù)組,這里是第二維數(shù)組
  • 在單個字符串數(shù)組元素借助reverse這個api進行反轉(zhuǎn)
  • 將單個字符串數(shù)組元素再次轉(zhuǎn)換成字符串元素
  • 將處理好二維數(shù)組元素轉(zhuǎn)換好的字符串在一維數(shù)組內(nèi)作為元素返回
  • 注意:使用for循環(huán)來做,反而麻煩,代碼量大,盡量不用

Python3 版算法實現(xiàn)

1 )簡潔版本

class Solution:
    def reverseWords(self, s):
        return " ".join(word[::-1] for word in s.split(" "))

2 )使用 enumerate

class Solution:
    def reverseWords(self, s: str) -> str:
        lt = s.split()
        # 使用 enumerate 將數(shù)組轉(zhuǎn)換成 枚舉結(jié)構(gòu)
        for i, w in enumerate(lt):
            lt[i] = w[:: -1] # 單位內(nèi)反轉(zhuǎn)
        return " ".join(lt) # 轉(zhuǎn)換成字符串

Golang 版算法實現(xiàn)

1 )字符串和數(shù)組的組合文章來源地址http://www.zghlxwxcb.cn/news/detail-427574.html

func reverseWords(s string) string {
	// 拆分數(shù)組
    words := strings.Split(s, " ")
    // 倒序輸出
    for i := 0; i < len(words); i++ {
        words[i] = reverse(words[i])
    }
    // 最終結(jié)果
    return strings.Join(words, " ")
}

// 對字符串進行反轉(zhuǎn)
func reverse(word string) string {
	// 轉(zhuǎn)成數(shù)組
    ans := []byte(word)
    // 獲取前后索引
    l, r := 0, len(ans)-1
    // 前后翻轉(zhuǎn)
    for l < r {
        ans[l], ans[r] = ans[r], ans[l]
        l++
        r--
    }
    // 獲取結(jié)果
    return string(ans)
}

到了這里,關(guān)于數(shù)據(jù)結(jié)構(gòu)與算法之字符串: Leetcode 557. 反轉(zhuǎn)字符串中的單詞 III (Typescript版)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關(guān)文章

  • 【JavaScript數(shù)據(jù)結(jié)構(gòu)與算法】字符串類(反轉(zhuǎn)字符串中的單詞)

    【JavaScript數(shù)據(jù)結(jié)構(gòu)與算法】字符串類(反轉(zhuǎn)字符串中的單詞)

    個人簡介 ?? 個人主頁: 前端雜貨鋪 ???♂? 學習方向: 主攻前端方向,也會涉及到服務端(Node.js) ?? 個人狀態(tài): 在校大學生一枚,已拿多個前端 offer(秋招) ?? 未來打算: 為中國的工業(yè)軟件事業(yè)效力 n 年 ?? 推薦學習:??前端面試寶典 ??Vue2 ??Vue3 ??Vue2/3項目

    2023年04月09日
    瀏覽(25)
  • 【數(shù)據(jù)結(jié)構(gòu)】數(shù)組和字符串(十四):字符串匹配1:樸素的模式匹配算法(StringMatching)

    【數(shù)據(jù)結(jié)構(gòu)】數(shù)組和字符串(十四):字符串匹配1:樸素的模式匹配算法(StringMatching)

    ??字符串(String)是由零個或多個字符(char)順序排列組成的有限序列,簡稱為串。例如 “good morning”就是由12個字符構(gòu)成的一個字符串。一般把字符串記作: S = ′ ′ a 0 a 1 … a n ? 1 ′ ′ S=\\\'\\\'a_{0} a_{1}…a_{n-1}\\\'\\\' S = ′′ a 0 ? a 1 ? … a n ? 1 ′′ ? ??其中S是串名,引號中

    2024年02月05日
    瀏覽(42)
  • 【數(shù)據(jù)結(jié)構(gòu)】字符串匹配|BF算法|KMP算法|next數(shù)組的優(yōu)化

    【數(shù)據(jù)結(jié)構(gòu)】字符串匹配|BF算法|KMP算法|next數(shù)組的優(yōu)化

    字符串匹配算法是在實際工程中經(jīng)常遇到的問題,也是各大公司筆試面試的??碱}目,本文主要介紹BF算法(最好想到的算法,也最好實現(xiàn))和KMP算法(最經(jīng)典的) BF算法,即暴力(Brute Force)算法,是普通的模式匹配算法,BF算法的思想就是將目標S的第一個字符與模式串T的第一

    2024年02月04日
    瀏覽(24)
  • 數(shù)據(jù)結(jié)構(gòu)課設:基于字符串模式匹配算法的病毒感染檢測問題

    數(shù)據(jù)結(jié)構(gòu)課設:基于字符串模式匹配算法的病毒感染檢測問題

    1.掌握字符串的順序存儲表示方法。 2.掌握字符串模式匹配算法BF算法或KMP算法的實現(xiàn)。 問題描述 醫(yī)學研究者最近發(fā)現(xiàn)了某些新病毒,通過對這些病毒的分析,得知它們的DNA序列都是環(huán)狀的?,F(xiàn)在研究者已收集了大量的病毒DNA和人的DNA數(shù)據(jù),想快速檢測出這些人是否感染了

    2023年04月27日
    瀏覽(28)
  • 【JavaScript數(shù)據(jù)結(jié)構(gòu)與算法】字符串類(計算二進制子串)

    【JavaScript數(shù)據(jù)結(jié)構(gòu)與算法】字符串類(計算二進制子串)

    個人簡介 ?? 個人主頁: 前端雜貨鋪 ???♂? 學習方向: 主攻前端方向,也會涉及到服務端(Node.js) ?? 個人狀態(tài): 在校大學生一枚,已拿多個前端 offer(秋招) ?? 未來打算: 為中國的工業(yè)軟件事業(yè)效力 n 年 ?? 推薦學習:??前端面試寶典 ??Vue2 ??Vue3 ??Vue2/3項目

    2024年02月05日
    瀏覽(102)
  • 【數(shù)據(jù)結(jié)構(gòu)-字符串 三】【棧的應用】字符串解碼

    【數(shù)據(jù)結(jié)構(gòu)-字符串 三】【棧的應用】字符串解碼

    廢話不多說,喊一句號子鼓勵自己:程序員永不失業(yè),程序員走向架構(gòu)!本篇Blog的主題是【字符串轉(zhuǎn)換】,使用【字符串】這個基本的數(shù)據(jù)結(jié)構(gòu)來實現(xiàn),這個高頻題的站點是: CodeTop ,篩選條件為: 目標公司+最近一年+出現(xiàn)頻率排序 ,由高到低的去 ??蚑OP101 去找,只有兩個

    2024年02月07日
    瀏覽(45)
  • 數(shù)據(jù)結(jié)構(gòu)(C語言):兩個字符串比較大小

    數(shù)據(jù)結(jié)構(gòu)(C語言):兩個字符串比較大小

    在寫這篇文章之前,作者想先和大家分享一個小故事。如果你不想看這個小故事的話,可以直接跳到第二點哦。 為了鍛煉自己的編碼能力,平時作業(yè)和實驗題的代碼我都是不看書、不看老師的PPT,按照自己的思路一行一行敲出來的。同時也不太理解那些照著書敲代碼的同學。

    2024年02月03日
    瀏覽(23)
  • Redis數(shù)據(jù)結(jié)構(gòu)與對象-字符串對象SDS

    Redis沒有使用C的字符串,而是自己構(gòu)建了簡單動態(tài)字符串(Simple Dynamic String),簡稱SDS。通過這種字符串格式能夠?qū)edis字符串操作進行提速。下面介紹原理。 sds數(shù)據(jù)格式如下: 比如,一個sds 中存的是 “Redis” ,那么buf 中是一個char型的數(shù)組,存5個字符R, e,d,i,s len =5;free

    2023年04月16日
    瀏覽(28)
  • MATLAB 之 常用內(nèi)部函數(shù),運算,字符串和結(jié)構(gòu)數(shù)據(jù)與單元數(shù)據(jù)

    MATLAB 之 常用內(nèi)部函數(shù),運算,字符串和結(jié)構(gòu)數(shù)據(jù)與單元數(shù)據(jù)

    內(nèi)部函數(shù)是由 MATLAB 系統(tǒng)根據(jù)一般用戶的需要編制并提供給用戶使用的一組程序,也被稱為系統(tǒng)函數(shù)或庫函數(shù)。 MATLAB 提供了許多數(shù)學函數(shù),函數(shù)的自變量規(guī)定為矩陣變量,運算法則是將函數(shù)逐項作用于矩陣的元素上,因而運算的結(jié)果是一個與自變量具有相同維數(shù)和大小的矩陣

    2024年02月04日
    瀏覽(24)
  • 【零基礎學Rust | 基礎系列 | 數(shù)據(jù)結(jié)構(gòu)】元組,數(shù)組,向量,字符串,結(jié)構(gòu)體

    【零基礎學Rust | 基礎系列 | 數(shù)據(jù)結(jié)構(gòu)】元組,數(shù)組,向量,字符串,結(jié)構(gòu)體

    在Rust編程語言中,數(shù)據(jù)結(jié)構(gòu)是組織和存儲數(shù)據(jù)的一種方式,它們使得數(shù)據(jù)可以高效地被訪問和操作。本章將詳細介紹元組,數(shù)組,向量,字符串,和結(jié)構(gòu)體這幾種基本的數(shù)據(jù)結(jié)構(gòu)。 元組是Rust編程語言中的一種復合數(shù)據(jù)類型,它可以包含多個值,這些值可以是不同類型。元組

    2024年02月11日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包