Golang程序 检查两个字符串是否为嵌套

Golang程序 检查两个字符串是否为嵌套

在本教程中,我们将学习如何使用Go编程语言检查给定的两个字符串是否是彼此的变形符号。

将一个不同的单词或短语的字母重新排列,并准确地使用所有的字母,形成的单词或短语被称为变形词。

例子- 角色的变位词是失败者

Binary anagram word is brainy

下面的例子显示了如何使用内置的make()函数创建一个空地图。make函数分配和初始化了一个哈希图数据结构,并返回一个指向该结构的地图值。该数据结构的具体细节是运行时的实现细节,并不是由语言本身指定的。Go提供了一个内置的map类型,实现了一个哈希表。地图是golang内置的数据类型,类似于哈希表,将一个键映射到一个值。.下面是一个地图的格式:map[key_type]value_type。key_type和value_type可以是不同的类型或相同的类型。地图是一个无序的、可改变的集合,不允许有重复。

语法

map[KeyType]ValueType

其中KeyType可以是任何可比较的类型,ValueType可以是任何类型,包括另一个map。

通过使用两个独立的函数来检查两个字符串是否是嵌套的Go程序代码示例

算法

  • 第1步 – 导入软件包fmt。

  • 第2步 – 创建函数 Anagram()。

  • 第3步 – 声明并初始化字符串变量。

  • 第4步 – 调用并使用 make() 函数来返回一个map。

  • 第5步 – 使用for range循环迭代地图,以检查Anagram条件。

  • 第6步- 启动 函数main()。

  • 第7步 – 调用函数 Anagram() 来检查两个字符串是否为anagram。

  • 第8步 – 使用 fmt.Println() 打印结果 。

例子

// GOLANG PROGRAM TO CHECK IF TWO STRINGS ARE ANAGRAMS
package main

// fmt package allows us to print anything on the screen.
import "fmt"

// Create the function Anagram () to check if two strings are anagram
func Anagram(s string, t string) bool {
   // initializing the variables
   string1 := len(s)
   string2 := len(t)
   fmt.Println("Letter 1 =", s, "\nLetter 2 =", t)
   fmt.Println("Is it an Anagram ?")
   if string1 != string2 {
      return false
   }

   // create and initialize a map anagramMap
   // Using make () function
   anagramMap := make(map[string]int)

   // As we already know that make() function
   // always returns a map which is initialized
   // Iterating map using for range loop
   // Traverse the first string and increase the count of each character in the map
   for i := 0; i < string1; i++ {
      anagramMap[string(s[i])]++
   }

   // Traverse the second string and decrease the count of each character in the map
   for i := 0; i < string2; i++ {
      anagramMap[string(t[i])]--
   }

   // Traverse the first string again and if for any character the count
   // is non-zero in the map then return false
   for i := 0; i < string1; i++ {
      if anagramMap[string(s[i])] != 0 { // if this condition satisfies return false
         return false
      }
   }
   // In the end return true
   return true
}
// start the function main ()
// GO program execution starts with the function main ()
func main() {
   fmt.Println("Golang program to to check if two strings are anagram")
   // Calling the function Anagram () to check if the two strings are anagram
   output := Anagram("listen", "silent")
   fmt.Println(output)

   // Calling the function Anagram () to check if the two strings are anagram
   output = Anagram("man", "name")
   fmt.Println(output)

   // print the result using the function fmt.Println ()
}

输出

Golang program to check if two strings are anagram

Golang program to to check if two strings are anagram
Letter 1 = listen
Letter 2 = silent
Is it an Anagram ?
true
Letter 1 = man
Letter 2 = name
Is it an Anagram ?
False

代码的描述

  • 在上面的程序代码中,我们首先声明包main,告诉编译器该包应该编译为可执行程序而不是共享库。

  • 我们导入了fmt包,其中包括包fmt的文件。这个包是关于格式化输入和输出的。

  • 接下来我们创建函数 Anagram() 来检查两个给定的字符串是否是彼此的嵌合体。

  • 接下来我们声明并初始化字符串变量string1- = len (s)和string2 := len (t)。

  • 我们使用内置的 make() 函数创建并初始化一个地图anagramMap,该函数分配并初始化一个哈希地图数据结构,并返回一个指向它的地图值。

  • 接下来我们使用我们使用for循环来分析代码的条件并返回一个值

  • 在第25行 -- anagramMap [string (s[i])] ++: 我们遍历第一个字符串并增加地图中每个字符的计数。在第30行:anagramMap [string (t[i])] –:我们遍历第二个字符串,并增加地图中每个字符的数量。–:我们遍历第二个字符串并减少地图中每个字符的数量。

  • 在第 36行 -- 如果anagramMap [string (s [i])] !=0 {return false}:我们再次遍历第一个字符串,如果任何字符在地图中的计数为非零,则返回false,最后返回true。

  • 现在我们开始使用函数main(),这个函数是可执行程序的入口点。它不接受任何参数,也不返回任何东西

  • main() 函数下 我们调用 Anagram() 函数来检查两个字符串是否是彼此的嵌合体。

  • 最后,我们使用 fmt.Println() 函数将结果打印在屏幕上。这个函数定义在fmt包下,它有助于编写标准输出。

总结

在上面的例子中,我们已经成功地编译并执行了Go语言程序,以检查两个字符串是否为彼此的变形。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程