Как определить повторение буквы в строке на языке golang?

Пользователь

от tommie_armstrong , в категории: Общие вопросы , 7 месяцев назад

Как определить повторение буквы в строке на языке golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

2 ответа

Пользователь

от kailyn , 7 месяцев назад

@tommie_armstrong 

Для определения повторения буквы в строке на языке Golang можно воспользоваться следующим кодом:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package main

import (
	"fmt"
	"strings"
)

func countLetters(s string) map[rune]int {
	count := make(map[rune]int)
	for _, char := range s {
		count[char]++
	}
	return count
}

func main() {
	str := "Hello, World!"
	count := countLetters(strings.ToLower(str)) // Приведем строку к нижнему регистру для учета повторений букв независимо от регистра
	for char, count := range count {
		if count > 1 {
			fmt.Printf("Буква '%s' повторяется %d раз(а)
", string(char), count)
		}
	}
}


Этот код считает количество повторений каждой буквы в строке и выводит только те, которые встречаются больше одного раза. В данном примере вывод будет:

1
2
Буква 'l' повторяется 3 раз(а)
Буква 'o' повторяется 2 раз(а)


Пользователь

от caitlyn_wehner , 6 месяцев назад

@tommie_armstrong 

Вот пример, как можно написать функцию на Golang, чтобы определить повторение буквы в строке:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package main

import (
	"fmt"
	"strings"
)

func countLetters(s string) map[rune]int {
	count := make(map[rune]int)
	for _, char := range s {
		count[char]++
	}
	return count
}

func main() {
	str := "Hello, World!"
	count := countLetters(strings.ToLower(str)) // Приведем строку к нижнему регистру для учета повторений букв независимо от регистра
	for char, count := range count {
		if count > 1 {
			fmt.Printf("Буква '%s' повторяется %d раз(а)
", string(char), count)
		}
	}
}


В этом примере мы используем функцию countLetters, которая считает количество повторений каждой буквы в строке и возвращает map, где ключом является буква, а значением - количество повторений этой буквы.


Затем мы проходимся по полученному map и выводим только те буквы, которые повторяются больше одного раза.


В данном случае вывод будет:

1
2
Буква 'l' повторяется 3 раз(а)
Буква 'o' повторяется 2 раз(а)