Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Сегодня я хочу вам рассказать об алгоритмах подсчёта количества палиндромов в строке
// paliandr project main.go
package main
import (
"fmt"
)
func main() {
// slowo := "banan"
slowo := "arozaupalanalapyazora"
slowo = "banan"
var count_chet, count_nechet int
for ii := 0; ii < len(slowo); ii++ {
if ii+1 < len(slowo) {
if slowo[ii] == slowo[ii+1] {
count_chet++
}
if ii > 0 {
if slowo[ii-1] == slowo[ii+1] {
count_nechet++
}
}
}
}
fmt.Println(count_chet, count_nechet)
}
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s = "abacabakar";
int chet_count = 0, nechet_count = 0;
for(int i = 0;i < s.length(); ++i)
{
if(i + 1 < s.length())
{
if(s[i] == s[i+1])
{
chet_count++;
}
if(i > 0)
{
if(s[i-1] == s[i+1])
{
nechet_count++;
}
}
}
}
cout << chet_count + nechet_count;
return 0;
}
Алгоритм Манакера позволяет за линейное время найти в строке самый длинный палиндром ....
SimpleBase используется в коде, но нигде не объявлено.
Алгоритмы для поиска палиндромов