Go語言程式檢查給定字串是否為Pangram
在本文中,我們將瞭解不同的 Go 語言示例,以檢查給定的字串是否為 Pangram。Pangram 也稱為泛字,是一種包含字母表中每個字母至少一次的句子。在 Go 語言中,Pangram 是一個包含字母表中每個字母的字串,不區分大小寫。
語法
strings.ToLower(str)
使用 Go (golang) 中的字串,您可以將字串的大小寫更改為小寫。strings 包中的 ToLower() 函式。
func make ([] type, size, capacity)
Go 語言中的 make 函式用於建立陣列/對映,它接受要建立的變數型別、其大小和容量作為引數
方法 1:使用對映
在這種方法中,我們將使用對映來檢查給定的字串是否為 Pangram。同時,我們將使用 ToLower 和 Make 等內部函式。
演算法
步驟 1 − 建立一個 package main 並宣告 fmt(格式化包)和 strings 包在程式中,其中 main 生成可執行檔案示例:s 並且 fmt 有助於格式化輸入和輸出。
步驟 2 − 建立一個函式 isPangram,並在該函式內部使用 ToLower() 方法,使用該方法將給定字串的大小寫更改為小寫
步驟 3 − 使用 make 函式建立一個對映來儲存字串中每個字母的頻率。
步驟 4 − 逐個遍歷字串中的字元。
步驟 5 − 如果字元是字母,則增加對映中字元的頻率,並對字母表中的每個字母(從“a”到“z”)重複此過程。
步驟 6 − 檢查對映中當前字母的頻率是否大於零,如果任何字母的頻率為零,則返回 false。
步驟 7 − 如果所有字母頻率的總和大於零,則返回 true。
步驟 8 − 透過計算每個字母的頻率並確定它是否大於零,該演算法確定字串中是否存在字母表中的每個字母。如果每個字母的頻率都為正,則該字串被視為 Pangram。
示例
在此示例中,我們將瞭解如何使用對映檢查給定的字串是否為 Pangram
package main
import (
"fmt"
"strings"
)
func isPangram(str string) bool {
// make all characters lowercase
str = strings.ToLower(str)
// create a map to store the frequency of each character
m := make(map[rune]int)
// iterate over each character in the string
for _, c := range str {
// if the character is a letter, increase its frequency in the map
if c >= 'a' && c <= 'z' {
m[c]++
}
}
// check if the frequency of each letter is greater than zero
for i := 'a'; i <= 'z'; i++ {
if m[i] == 0 {
return false
}
}
return true
}
func main() {
str := "I am a frontend developer"
fmt.Println("The pangram is checked as:")
if isPangram(str) {
fmt.Println(str, "is a pangram")
} else {
fmt.Println(str, "is not a pangram")
}
}
輸出
The pangram is checked as: I am a frontend developer is not a pangram
方法 2:使用集合
在這種方法中,我們將使用集合來檢查給定的字串是否為 Pangram。
演算法
步驟 1 − 建立一個 package main 並宣告 fmt(格式化包)和 strings 包在程式中,其中 main 生成可執行檔案示例:s 並且 fmt 有助於格式化輸入和輸出。
步驟 2 − 建立一個函式 isPangram,並在該函式內部建立一個集合來儲存字串的唯一字元。
步驟 3 − 使用 strings.ToLower() 將給定字串的大小寫更改為小寫。
步驟 4 − 逐個遍歷字串中的字元。
步驟 5 − 如果字元是字母,則將其新增到集合中,並驗證集合是否包含 26 個元素。
步驟 6 − 如果集合中有 26 個不同的字元,則返回 true;如果集合中唯一字元少於 26 個,則返回 false。
步驟 7 − 透過將唯一字元新增到集合中並確定集合的長度是否為 26,該演算法確定字串中是否包含字母表中的每個字母。如果是,則返回 true;否則返回 false。如果字串中包含字母表中的每個字母,則集合中將有 26 個不同的字元。
示例
在此示例中,我們將檢查給定的字串是否使用集合為 Pangram
package main
import (
"fmt"
"strings"
)
func isPangram(str string) bool {
// create a set to store the unique characters in the string using make function
set_create := make(map[rune]bool)
// make all the character lowercase
str = strings.ToLower(str)
// iterate over each character in the string
for _, c := range str {
// if the character is a letter, add it to the set
if c >= 'a' && c <= 'z' {
set_create[c] = true
}
}
// check if the set contains 26 unique characters
return len(set_create) == 26
}
func main() {
str := "I am a frontend developer"
if isPangram(str) {
fmt.Println(str, "is a pangram")
} else {
fmt.Println(str, "is not a pangram")
}
}
輸出
I am a frontend developer is not a pangram
結論
我們使用兩個示例執行了檢查給定字串是否為 Pangram 的程式。在第一個示例中,我們使用了對映,在第二個示例中,我們使用了集合來執行程式。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP