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

Golang每日一練(leetDay0004)

這篇具有很好參考價(jià)值的文章主要介紹了Golang每日一練(leetDay0004)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Golang每日一練(leetDay0004)

目錄

10.?正則表達(dá)式匹配?Regular Expression Matching????????

11. 盛最多水的容器 Container with most water??????

12. 整數(shù)轉(zhuǎn)羅馬數(shù)字 Integer to Roman??????

???每日一練刷題專欄???

Golang每日一練 專欄

Python每日一練 專欄

C/C++每日一練 專欄

Java每日一練 專欄


10.?正則表達(dá)式匹配?Regular Expression Matching

給你一個(gè)字符串?s?和一個(gè)字符規(guī)律?p,請(qǐng)你來實(shí)現(xiàn)一個(gè)支持?'.'?和?'*'?的正則表達(dá)式匹配。

  • '.'?匹配任意單個(gè)字符
  • '*'?匹配零個(gè)或多個(gè)前面的那一個(gè)元素

所謂匹配,是要涵蓋?整個(gè)?字符串?s的,而不是部分字符串。

示例 1:

輸入:s = "aa", p = "a"
輸出:false
解釋:"a" 無法匹配 "aa" 整個(gè)字符串。

示例 2:

輸入:s = "aa", p = "a*"
輸出:true
解釋:因?yàn)?'*' 代表可以匹配零個(gè)或多個(gè)前面的那一個(gè)元素, 在這里前面的元素就是 'a'。因此,字符串 "aa" 可被視為 'a' 重復(fù)了一次。

示例?3:

輸入:s = "ab", p = ".*"
輸出:true
解釋:".*" 表示可匹配零個(gè)或多個(gè)('*')任意字符('.')。

提示:

  • 1 <= s.length?<= 20
  • 1 <= p.length?<= 30
  • s?只包含從?a-z?的小寫字母。
  • p?只包含從?a-z?的小寫字母,以及字符?.?和?*
  • 保證每次出現(xiàn)字符?*?時(shí),前面都匹配到有效的字符

代碼:

package main

import (
	"fmt"
)

func isMatch(s string, p string) bool {
	sLen, pLen := len(s), len(p)
	dp := make([][]bool, sLen+1)
	for i := 0; i <= sLen; i++ {
		dp[i] = make([]bool, pLen+1)
	}
	dp[0][0] = true
	for i := 0; i <= sLen; i++ {
		for j := 1; j <= pLen; j++ {
			if p[j-1] == '*' {
				dp[i][j] = dp[i][j-2]
				if match(s, p, i, j-1) {
					dp[i][j] = dp[i][j] || dp[i-1][j]
				}
			} else {
				if match(s, p, i, j) {
					dp[i][j] = dp[i-1][j-1]
				}
			}
		}
	}
	return dp[sLen][pLen]
}

func match(s, p string, i, j int) bool {
	if i == 0 {
		return false
	}
	if p[j-1] == '.' {
		return true
	}
	return s[i-1] == p[j-1]
}

func main() {

	fmt.Println(isMatch("aa", "a"))
	fmt.Println(isMatch("aa", "a*"))
	fmt.Println(isMatch("ab", ".*"))

}

輸出:

false
true
true

說明:

動(dòng)態(tài)規(guī)劃,定義一個(gè)二維數(shù)組dp,dp[i][j]表示s的前i個(gè)字符和p的前j個(gè)字符是否匹配。


11. 盛最多水的容器 Container with most water

給定一個(gè)長度為?n?的整數(shù)數(shù)組?height?。有?n?條垂線,第?i?條線的兩個(gè)端點(diǎn)是?(i, 0)?和?(i, height[i])?。

找出其中的兩條線,使得它們與?x?軸共同構(gòu)成的容器可以容納最多的水。

返回容器可以儲(chǔ)存的最大水量。

說明:你不能傾斜容器。

示例 1:

Golang每日一練(leetDay0004)

輸入:[1,8,6,2,5,4,8,3,7]
輸出:49 
解釋:圖中垂直線代表輸入數(shù)組 [1,8,6,2,5,4,8,3,7]。在此情況下,容器能夠容納水(表示為藍(lán)色部分)的最大值為?49。

示例 2:

輸入:height = [1,1]
輸出:1

提示:

  • n == height.length
  • 2 <= n <= 10^5
  • 0 <= height[i] <= 10^4

代碼:

package main

import (
	"fmt"
)

func maxArea(height []int) int {
	max, start, end := 0, 0, len(height)-1
	for start < end {
		width := end - start
		high := 0
		if height[start] < height[end] {
			high = height[start]
			start++
		} else {
			high = height[end]
			end--
		}
		temp := width * high
		if temp > max {
			max = temp
		}
	}
	return max
}

func main() {

	fmt.Println(maxArea([]int{1, 8, 6, 2, 5, 4, 8, 3, 7}))
	fmt.Println(maxArea([]int{1, 1}))

}

輸出:

49
1

說明:

雙指針,定義兩個(gè)指針 start 和 end,分別指向數(shù)組的頭和尾。初始時(shí),它們之間的距離就是數(shù)組的長度。然后,以較小的高度為準(zhǔn),計(jì)算兩個(gè)指針圍成的面積,并更新最大面積。接著,將較小高度的指針向中間移動(dòng)。


12. 整數(shù)轉(zhuǎn)羅馬數(shù)字 Integer to Roman?

羅馬數(shù)字包含以下七種字符:?I,?V,?X,?L,C,D?和?M。

字符          數(shù)值
I             1
V             5
X             10
L             50
C             100
D             500
M             1000

例如, 羅馬數(shù)字 2 寫做?II?,即為兩個(gè)并列的 1。12 寫做?XII?,即為?X?+?II?。 27 寫做??XXVII, 即為?XX?+?V?+?II?。

通常情況下,羅馬數(shù)字中小的數(shù)字在大的數(shù)字的右邊。但也存在特例,例如 4 不寫做?IIII,而是?IV。數(shù)字 1 在數(shù)字 5 的左邊,所表示的數(shù)等于大數(shù) 5 減小數(shù) 1 得到的數(shù)值 4 。同樣地,數(shù)字 9 表示為?IX。這個(gè)特殊的規(guī)則只適用于以下六種情況:

  • I?可以放在?V?(5) 和?X?(10) 的左邊,來表示 4 和 9。
  • X?可以放在?L?(50) 和?C?(100) 的左邊,來表示 40 和?90。?
  • C?可以放在?D?(500) 和?M?(1000) 的左邊,來表示?400 和?900。

給你一個(gè)整數(shù),將其轉(zhuǎn)為羅馬數(shù)字。

示例?1:

輸入:?num = 3
輸出: "III"

示例?2:

輸入:?num = 4
輸出: "IV"

示例?3:

輸入:?num = 9
輸出: "IX"

示例?4:

輸入:?num = 58
輸出: "LVIII"
解釋: L = 50, V = 5, III = 3.

示例?5:

輸入:?num = 1994
輸出: "MCMXCIV"
解釋: M = 1000, CM = 900, XC = 90, IV = 4.

提示:

  • 1 <= num <= 3999

代碼:

package main

import (
	"fmt"
)

func intToRoman(num int) string {
	values := []int{1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}
	symbols := []string{"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"}
	var roman string
	for i := 0; i < len(values); i++ {
		for values[i] <= num {
			num -= values[i]
			roman += symbols[i]
		}
	}
	return roman
}

func main() {

	fmt.Println(intToRoman(9))
	fmt.Println(intToRoman(58))
	fmt.Println(intToRoman(1994))

}

輸出:

IX
LVIII
MCMXCIV


???每日一練刷題專欄???

??持續(xù),努力奮斗做強(qiáng)刷題搬運(yùn)工!

???點(diǎn)贊,你的認(rèn)可是我堅(jiān)持的動(dòng)力!?

???收藏,你的青睞是我努力的方向!?

??評(píng)論,你的意見是我進(jìn)步的財(cái)富!??文章來源地址http://www.zghlxwxcb.cn/news/detail-402429.html

Golang每日一練(leetDay0004)

Golang每日一練 專欄

Golang每日一練(leetDay0004)?

Python每日一練 專欄

Golang每日一練(leetDay0004)?

C/C++每日一練 專欄

Golang每日一練(leetDay0004)?

Java每日一練 專欄

到了這里,關(guān)于Golang每日一練(leetDay0004)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Golang每日一練(leetDay0049) 二叉樹專題(9)

    Golang每日一練(leetDay0049) 二叉樹專題(9)

    目錄 144. 二叉樹的前序遍歷 Binary-tree Preorder Traversal???? 145. 二叉樹的前序遍歷 Binary-tree Postorder Traversal???? 對(duì)比: 94. 二叉樹的中序遍歷 Binary-tree Inorder Traversal???? 146. LRU緩存 LRU Cache?????? ?? 每日一練刷題專欄??? Golang每日一練 專欄 Python每日一練 專欄 C/C++每日一

    2024年02月04日
    瀏覽(30)
  • Golang每日一練(leetDay0102) 刪除無效的括號(hào)、累加數(shù)

    Golang每日一練(leetDay0102) 刪除無效的括號(hào)、累加數(shù)

    目錄 295. 數(shù)據(jù)流的中位數(shù) Find-median-from-data-stream??????? 301. 刪除無效的括號(hào) Remove Invalid Parentheses??????? 306. 累加數(shù) Additive Number????? ?? 每日一練刷題專欄??? Rust每日一練 專欄 Golang每日一練 專欄 Python每日一練 專欄 C/C++每日一練 專欄 Java每日一練 專欄 中位數(shù) 是有

    2024年02月10日
    瀏覽(27)
  • Golang每日一練(leetDay0098) 生命、Nim、猜數(shù)字游戲

    Golang每日一練(leetDay0098) 生命、Nim、猜數(shù)字游戲

    目錄 289. 生命游戲 Game Of Life?????? 292. Nim 游戲 Nim Game???? 299. 猜數(shù)字游戲 Bulls and Cows?????? ?? 每日一練刷題專欄??? Rust每日一練 專欄 Golang每日一練 專欄 Python每日一練 專欄 C/C++每日一練 專欄 Java每日一練 專欄 生命游戲 ? 是英國數(shù)學(xué)家約翰·何頓·康威在 1970 年發(fā)

    2024年02月09日
    瀏覽(22)
  • Golang每日一練(leetDay0065) 位1的個(gè)數(shù)、詞頻統(tǒng)計(jì)

    Golang每日一練(leetDay0065) 位1的個(gè)數(shù)、詞頻統(tǒng)計(jì)

    目錄 191. 位1的個(gè)數(shù) Nnumber of 1-bits???? 192. 統(tǒng)計(jì)詞頻 Word Frequency?????? ?? 每日一練刷題專欄??? Golang每日一練 專欄 Python每日一練 專欄 C/C++每日一練 專欄 Java每日一練 專欄 編寫一個(gè)函數(shù),輸入是一個(gè)無符號(hào)整數(shù)(以二進(jìn)制串的形式),返回其二進(jìn)制表達(dá)式中數(shù)字位數(shù)為

    2024年02月06日
    瀏覽(25)
  • Golang每日一練(leetDay0061) 表列序號(hào)、階乘后的零

    Golang每日一練(leetDay0061) 表列序號(hào)、階乘后的零

    目錄 171. Excel 表列序號(hào) Excel Sheet Column Number???? 172. 階乘后的零 Factorial Trailing Zeroes?????? ?? 每日一練刷題專欄??? Golang每日一練 專欄 Python每日一練 專欄 C/C++每日一練 專欄 Java每日一練 專欄 給你一個(gè)字符串? columnTitle ?,表示 Excel 表格中的列名稱。返回? 該列名稱對(duì)

    2024年02月04日
    瀏覽(60)
  • Golang每日一練(leetDay0095) 第一個(gè)錯(cuò)誤的版本、完全平方數(shù)

    Golang每日一練(leetDay0095) 第一個(gè)錯(cuò)誤的版本、完全平方數(shù)

    目錄 278. 第一個(gè)錯(cuò)誤的版本 First Bad Version???? 279. 完全平方數(shù) Perfect Squares?????? ?? 每日一練刷題專欄??? Rust每日一練 專欄 Golang每日一練 專欄 Python每日一練 專欄 C/C++每日一練 專欄 Java每日一練 專欄 你是產(chǎn)品經(jīng)理,目前正在帶領(lǐng)一個(gè)團(tuán)隊(duì)開發(fā)新的產(chǎn)品。不幸的是,你

    2024年02月09日
    瀏覽(34)
  • Golang每日一練(leetDay0115) 重新安排行程、遞增的三元子序列

    Golang每日一練(leetDay0115) 重新安排行程、遞增的三元子序列

    目錄 332. 重新安排行程 Reconstruct Itinerary???????? 334. 遞增的三元子序列 Increasing Triplet Subsequence????? ?? 每日一練刷題專欄??? Rust每日一練 專欄 Golang每日一練 專欄 Python每日一練 專欄 C/C++每日一練 專欄 Java每日一練 專欄 給你一份航線列表? tickets ?,其中? tickets[i]

    2024年02月16日
    瀏覽(21)
  • Golang每日一練(leetDay0118) 扁平化嵌套列表迭代器、整數(shù)拆分

    Golang每日一練(leetDay0118) 扁平化嵌套列表迭代器、整數(shù)拆分

    目錄 341. 扁平化嵌套列表迭代器 Flatten Nested List Iterator?????? 343. 整數(shù)拆分 Integer Break?????? ?? 每日一練刷題專欄??? Rust每日一練 專欄 Golang每日一練 專欄 Python每日一練 專欄 C/C++每日一練 專欄 Java每日一練 專欄 給你一個(gè)嵌套的整數(shù)列表? nestedList ?。每個(gè)元素要么是

    2024年02月16日
    瀏覽(54)
  • Golang每日一練(leetDay0075) 打家劫舍II、最短回文串

    Golang每日一練(leetDay0075) 打家劫舍II、最短回文串

    目錄 213. 打家劫舍 II House Robber ii?????? 214. 最短回文串 Shortest Palindrome???????? ?? 每日一練刷題專欄??? Rust每日一練 專欄 Golang每日一練 專欄 Python每日一練 專欄 C/C++每日一練 專欄 Java每日一練 專欄 你是一個(gè)專業(yè)的小偷,計(jì)劃偷竊沿街的房屋,每間房內(nèi)都藏有一定的

    2024年02月06日
    瀏覽(29)
  • Golang每日一練(leetDay0102) 數(shù)據(jù)流中位數(shù)、刪除無效括號(hào)、累加數(shù)

    Golang每日一練(leetDay0102) 數(shù)據(jù)流中位數(shù)、刪除無效括號(hào)、累加數(shù)

    目錄 295. 數(shù)據(jù)流的中位數(shù) Find-median-from-data-stream??????? 301. 刪除無效的括號(hào) Remove Invalid Parentheses??????? 306. 累加數(shù) Additive Number????? ?? 每日一練刷題專欄??? Rust每日一練 專欄 Golang每日一練 專欄 Python每日一練 專欄 C/C++每日一練 專欄 Java每日一練 專欄 中位數(shù) 是有

    2024年02月12日
    瀏覽(17)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包