Golang程序 寻找字符串中的重复字符

Golang程序 寻找字符串中的重复字符

在golang中,识别在字符串中出现不止一次的字符是寻找重复字符的第1步。为了达到这个目的,在跟踪已经遇到的字符的同时,遍历字符串。然后,在添加一个字符之前,确定它是否已经在已经遇到过的字符集合中。如果一个字符已经存在于这个集合中,那么它就是一个重复的字符。让我们来看看它的执行情况。

方法1:使用地图和一个for循环

在这种方法中,程序使用一个地图来跟踪每个字符在字符串中出现的次数。然后,它在地图上进行迭代,并打印出计数大于1的任何字符。

语法

map

地图是Golang中一个预先建立的数据结构,可以实现键值对的存储和检索。地图的键必须是不同的,其值可以是任何数据类型。使用地图可以有效地存储和检索数据,它被实现为哈希表。可以使用[]操作符来添加、检索和删除项目,并且可以使用make()方法和map关键字来构建它们。

func make ([] type, size, capacity)

Go语言中的make函数用于创建一个数组/映射,它接受要创建的变量类型、大小和容量作为参数。

算法

  • 第1步 – 创建一个包main,并在程序中声明fmt(format package)包,其中main产生可执行的Example:s,fmt帮助格式化输入和输出。

  • 第2步 – 创建一个main函数,在该函数中创建一个字符串hello alexa,并将其分配给一个名为mystr的变量。

  • 第 3步– 为了跟踪每个字符在字符串中出现的次数,初始化一个空图。

  • 第 4步– 使用for循环来反复迭代字符串中的每个字符。

  • 第5步– 为地图上的每个字符添加一个字符数,并利用for循环在地图上进行迭代。

  • 第6步 – 检查地图上每个字符的计数是否超过1。如果是,则打印出字符和它的计数。

  • 第7步 – 一旦字符串中的每个字符都被检查过,并检查是否有重复的情况,重复这个过程。

  • 第8步 – 使用fmt.Println()函数在屏幕上打印重复的字符,其中ln表示新行。

例子

在这个例子中,我们将看到如何使用Map和for循环找到字符串中的重复字符

package main
import (
   "fmt"
)

func main() {
   mystr := "hello alexa"    //create string
   fmt.Println("The original string given here is:", mystr)
   counts := make(map[rune]int)
   for _, char := range mystr {
      counts[char]++
   }
   fmt.Println("The duplicate characters in this string can be represented as:")
   for char, count := range counts {
      if count > 1 {
         fmt.Printf("%c appears %d times\n", char, count) //print the duplicate characters on the screen
      }
   }
}

输出

The original string given here is: hello alexa
The duplicate characters in this string can be represented as:
e appears 2 times
l appears 3 times
a appears 2 times

方法2:使用计数变量

在这种方法中,程序使用一个地图跟踪输入字符串中每个字符的频率。然后,逐个迭代字符串中的字符,确定该字符在地图中是否有多个出现。如果有,就把它作为一个重复的字符打印到控制台。让我们看看这个例子:和算法。

语法

func make ([] type, size, capacity)

Go语言中的make函数用于创建一个数组/映射,它接受要创建的变量类型、其大小和容量作为参数。

算法

  • 第1步 – 创建一个包main,并在程序中声明fmt(format package)包,main产生可执行的Example:s,fmt帮助格式化输入和输出。

  • 第2步 – 创建一个函数main,并在该函数中设置一个变量input_value,其中包含你希望搜索的重复字符的字符串。

  • 第 3步 – 为了存储输入字符串中每个字符的频率,创建一个名为counts的空图。

  • 第4步– 使用for循环来反复迭代输入字符串中的每个字符。

  • 第5步– 验证counts地图中每个字符的计数是否等于1。对于每个字符。如果是,将该字符打印到控制台,因为它是一个重复的字符。

  • 第6步 – 如果该字符还不存在,则在每次迭代时将其添加到地图中,或者将计数增加1。

  • 第7步 – 如果输入字符串中有任何重复的字符,输出将使用fmt.Println()函数打印到控制台,其中ln表示新行。

例子

在这个例子中,我们将使用计数变量找到字符串中的重复字符

package main
import (
   "fmt"
)

func main() {
   input_value := "hello,alexa!"  //create string
   fmt.Println("The original string given here is:", input_value)
   counts := make(map[rune]int)
   for _, char := range input_value {
      if counts[char] == 1 {
         fmt.Printf("'%c' is a duplicate character.\n", char)
      }
      counts[char]++  //increment the count
   }
}

输出

The original string given here is: hello,alexa!
'l' is a duplicate character.
'e' is a duplicate character.
'a' is a duplicate character.

结论

我们用两个例子执行了寻找字符串中重复字符的程序。在第一个例子中,我们使用了map和for循环,在第二个例子中,我们使用count变量来保持计数。因此,程序成功执行。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程