Swift程式檢查陣列是否為迴文


迴文陣列是指當其元素反轉時保持不變的陣列,我們也可以說,即使我們從後向前或從前向後讀取,迴文陣列的元素也保持不變。例如,[1, 9, 10, 9, 1] 是一個迴文陣列,而 [3, 5, 7, 8, 3, 2, 1] 不是迴文陣列。在本文中,我們將學習使用 Swift 程式語言查詢給定陣列是否為迴文陣列的不同方法。

演算法

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

  • 步驟 2 − 反轉陣列的元素

  • 步驟 3 − 將陣列與反轉後的陣列進行比較。如果它們相等,則給定陣列為迴文陣列。否則不是。

  • 步驟 4 − 建立一個數組並將其傳遞給函式。

  • 步驟 5 − 列印輸出。

示例 1

以下是檢查陣列是否為迴文的 Swift 程式。

import Foundation
import Glibc

// Function to check if the given array is palindrome or not
func checkPalindrome(arr: [Int]) -> Bool {
   let reversedArray = Array(arr.reversed())
   return arr == reversedArray
}

// Test Case 1
let mArr1 = [4, 2, 8, 7, 8, 2, 4]
let result1 = checkPalindrome(arr: mArr1)
print("Is Array - \(mArr1) is palindrome?:", result1) 

// Test Case 2
let mArr2 = [4, 1, 8, 7, 8, 6, 9]
let result2 = checkPalindrome(arr: mArr2)
print("Is Array - \(mArr2) is palindrome?:", result2)

輸出

Is Array - [4, 2, 8, 7, 8, 2, 4] is palindrome?: true
Is Array - [4, 1, 8, 7, 8, 6, 9] is palindrome?: false

在上面的程式碼中,我們有兩個整數型別的陣列。現在,我們建立一個函式來檢查陣列是否為迴文。在這個函式中,我們首先使用 reversed() 函式反轉陣列。然後將反轉後的陣列與原始陣列進行比較。如果兩個陣列相等,則列印“true”。如果它們彼此不相等,則列印“false”。

示例 2

以下是檢查陣列是否為迴文的 Swift 程式。

import Foundation
import Glibc

// Function to check if the given array is palindrome or not
func checkPalindrome(arr: [Int]) -> Bool  {
    var start = 0
    var end = arr.count - 1
    
    while start < end  {
        if arr[start] != arr[end]  {
            return false
        }
        start += 1
        end -= 1
    }
    return true
}


// Test Case 1
let mArr1 = [9, 1, 8, 4, 8, 1, 9]
let result1 = checkPalindrome(arr: mArr1)
if result1 == true{
    print("Given array is palindrome")
}
else {
    print("Given array is not a palindrome")
}

// Test Case 2
let mArr2 = [2, 1, 8, 7, 2]
let result2 = checkPalindrome(arr: mArr2)
if result2 == true{
    print("Given array is palindrome")
}
else {
    print("Given array is not a palindrome")
}

輸出

Given array is palindrome
Given array is not a palindrome

在上面的程式碼中,我們有兩個整數型別的陣列。現在,我們建立一個函式來檢查陣列是否為迴文。在這個函式中,我們初始化 start = 0 和 end = arr.count-1。然後使用 while 迴圈遍歷陣列的每個元素,並比較陣列的起始和結束元素。如果它們相等,則返回 true,這意味著陣列是迴文。如果它們彼此不相等,則返回 false,這意味著陣列不是迴文。

結論

在本文中,我們使用了兩個不同的示例來幫助您理解查詢給定陣列是否為迴文陣列的不同方法。

更新於: 2023年2月8日

3K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告