Swift程式:檢查給定字串是否為異序詞


異序詞字串是指其中沒有哪個字母出現超過一次的字串。例如,“Sky with cloud”就是一個異序詞,因為字串中每個字母只出現一次。而“colorful balloons”則不是異序詞,因為字串中某些字母,如o、u、l等,出現了多次。在這裡,我們將使用Swift程式語言執行不同的示例,以檢查給定的字串是否為異序詞。

演算法

  • 步驟1 - 建立一個函式。

  • 步驟2 - 從字串中刪除空格。

  • 步驟3 - 建立一個單獨的陣列來儲存輸入字串中存在的所有字母。

  • 步驟4 - 將陣列轉換為集合以儲存唯一元素。

  • 步驟5 - 如果集合的長度等於輸入字母的數量,這意味著每個字母只出現一次,則該集合為異序詞;否則不是。

  • 步驟6 - 建立一個字串並將其傳遞到函式中。

  • 步驟7 - 列印輸出。

示例1

以下Swift程式用於檢查給定字串是否為異序詞。

import Foundation
import Glibc

// Function to check if the given string is heterogram or not
func CheckHeterogram(str: String) -> Bool {
   // Remove the white spaces from the string
   let nStr = str.replacingOccurrences(of: " ", with: "")
   var set = Set<Character>()
   for c in nStr {
      if set.contains(c) {
         return false
      } else {
         set.insert(c)
      }
   }
   return true
}

// Test case 1
let myString1 = "I love Ma"
print("Is String-'\(myString1)' is a Heterogram?:", CheckHeterogram(str: myString1)) 

// Test case 2
let myString2 = "My sheep color is black"
print("Is String-'\(myString2)' is a Heterogram?:", CheckHeterogram(str: myString2))

輸出

Is String-'I love Ma' is a Heterogram?: true
Is String-'My sheep color is black' is a Heterogram?: false

在上面的程式碼中,我們建立了一個名為CheckHeterogram()的函式。在這個函式中,我們使用集合來跟蹤遇到的字元。然後遍歷輸入字串的每個字元,並檢查該字元是否已存在於集合中。如果此函式返回false,則意味著該字串不是異序詞。如果函式遍歷整個字串而沒有找到任何重複項,則返回true,這意味著該字串是異序詞。

示例2

以下Swift程式用於檢查給定字串是否為異序詞。

import Foundation
import Glibc

// Function to check if the given string is heterogram or not
func CheckHeterogram(str: String) -> Bool {
   let nStr = str.replacingOccurrences(of: " ", with: "")
   let lString = nStr.lowercased()
   let charArray = Array(lString)
   let uniqueChars = Set(charArray)
   return uniqueChars.count == charArray.count
}

// Test case 1
let myString1 = "Hey Suman"
print("Is String-'\(myString1)' is a Heterogram?:", CheckHeterogram(str: myString1)) 

// Test case 2
let myString2 = "I love Cooking Food"
print("Is String-'\(myString2)' is a Heterogram?:", CheckHeterogram(str: myString2))

輸出

Is String-'Hey Suman' is a Heterogram?: true
Is String-'I love Cooking Food' is a Heterogram?: false

在上面的程式碼中,我們有兩個輸入字串。現在,我們建立一個函式來檢查給定的字串是否為異序詞。在這個函式中,我們首先將輸入字串轉換為小寫,然後從字串中建立一個字元陣列,然後將陣列轉換為包含唯一字元的集合。現在,如果uniqueChar計數等於characterArray計數,則此函式返回true,這意味著該字串是異序詞。如果uniqueChar計數不等於characterArray計數,則此函式將返回false,這意味著該字串不是異序詞。

結論

這就是我們如何檢查給定字串是否為異序詞的方法。

更新於:2023年2月8日

瀏覽量:163

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告