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 的程式。在第一個示例中,我們使用了對映,在第二個示例中,我們使用了集合來執行程式。

更新於: 2023年2月20日

471 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.