Golang 检查回文
在本教程中,我们将学习如何在Go编程语言中检查回文。我们将分别在数字和字符串中检查回文的示例。
回文是一个单词、数字、短语或其他符号序列,无论从前还是从后阅读都是相同的,例如单词civic或radar,数字22\2\22或句子“Mr. Owl ate my metal worm”。
示例1:使用一个单一函数的Golang程序代码显示数字是否为回文数
语法
Syntax of For loop
Initialize
for condition {
}
incrementor
初始化语句是可选的,并且在for循环开始之前执行。
条件语句包含一个布尔表达式,该表达式在每次迭代开始时进行评估。如果条件语句的值为true,那么循环将被执行。
增量语句在for循环体之后执行。在增量语句之后,条件语句再次进行评估,如果条件语句的值为false,那么循环将结束。
步骤
- 步骤1 - 导入fmt包。
-
步骤2 - 开始函数 main() 。
-
步骤3 - 声明并初始化变量。
-
步骤4 - 使用for循环分析条件。
-
步骤5 - 使用 fmt.Printf() 打印结果。
示例
// GOLANG PROGRAM TO CHECK FOR PALINDROME
// fmt package allows us to print anything on the screen.
package main
import "fmt"
// start the function main ()
func main() {
fmt.Println("Golang program to check for palindrome")
// declare the variables
var number,rem,temporary int
var reverse int = 0
// initialize the number variable
number = 45454
temporary=number
// For Loop used
for{
rem = number%10
reverse = reverse*10 + rem
number /= 10
if(number==0){
break // Break Statement used to exit from loop
}
}
if(temporary==reverse){
fmt.Printf("Number %d is a Palindrome",temporary)
}else{
fmt.Printf("Number %d is not a Palindrome",temporary)
}
// print the result using fmt.Printf () function
}
输出
Golang program to check for palindrome
Number 26262 is a Palindrome
代码描述
-
在上面的程序中,我们首先声明包main。
-
我们导入了包含fmt包的文件的fmt包。
-
现在,开始 函数main() ,该函数是可执行程序的入口点。它不接受任何参数,也不返回任何值。
-
声明四个整数变量。将变量reverse初始化为0,将变量number初始化为您想要的值。
-
使用for循环 - 条件放在if语句内,并通过break语句停止执行。
-
最后,使用 fmt.Printf() 在屏幕上打印结果,该函数根据格式说明符进行格式化并写入标准输出。
示例2:两个单独函数的Golang程序代码,用于检查字符串是否为数字
语法
for i, j:= range variable{
// statement..
}
其中,I = 第一个索引值,j = 最后一个索引值
i和j是迭代变量,它们的值已被分配。
在循环开始之前,范围表达式会被计算一次。
步骤
- 步骤1 - 导入fmt包。
-
步骤2 - 开始 函数main() 。
-
步骤3 - 声明并初始化字符串变量。
-
步骤4 - 调用函数 Palindrome() 。
-
步骤5 - 创建函数 Palindrome() 。
-
步骤6 - 使用for循环分析条件。
-
步骤7 - 使用 fmt.Printf() 打印结果。
示例
// GOLANG PROGRAM TO CHECK FOR PALINDROME
// fmt package allows us to print anything on the screen.
package main
import "fmt"
// start the function main ()
func main() {
// declare and initialize the string
str := "MADAM"
fmt.Println("Golang program to check palindrome,\n Given Word =",str)
// calling the function
Palindrome(str)
// print the result using fmt.Printf () function
fmt.Printf("'%s' is palindrome\n", str)
}
func Palindrome(str string) bool {
lastIdx := len(str) - 1
// using for loop
for i := 0; i < lastIdx/2 && i < (lastIdx-i); i++ {
if str[i] != str[lastIdx-i] {
return false
}
}
return true
}
输出
Golang program to check palindrome,
Given Word = MADAM
'MADAM' is palindrome
代码说明
-
在上述程序中,我们首先声明了 main 包。
-
我们导入了 fmt 包,其中包含 fmt 包的文件。
-
现在开始执行 main() 函数 ,这个函数是可执行程序的入口点。它不接受任何参数,也不返回任何内容。
-
接下来,我们声明并初始化一个字符串变量,以判断它是否是回文。
-
然后我们调用函数 Palindrome() ,该函数后面将在函数中定义,用于检查给定的字符串是否是回文。
-
在上面的函数中,我们使用 for 循环来分析代码的条件,其中 i=首索引,变量 lastIdx 是最后一个索引。我们期望的是从 i=0 开始递增遍历字符串。在这样做的过程中,我们设置另一个变量 lastIdx=len(str)-1。
-
如果字符串 i 不等于字符串 lastIdx – i,则返回 false,否则返回 true 表示该字符串是回文。
-
最后使用 fmt.Printf() 函数将结果打印出来,以确定给定的字符串是否是回文。该函数根据格式说明符进行格式化,并写入标准输出。
结论
在上面的两个示例中,我们成功编译并执行了 Golang 程序来检查回文。
在第一个示例中,我们展示了如何使用单个函数判断给定的数字是否是回文。
在第二个示例中,我们展示了如何判断给定的字符串是否是回文。
在这两个示例中,我们都使用了 for 循环。在示例 1 中我们使用了简单的 for 循环,在示例 2 中使用了简单范围的 for 循环。