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+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告