字符串处理

简介: 字符串处理


题目描述

在给出一个字符串 S ,计算 S中有多少连续子串是回文串。

输入

输入包含多组测试数据。每组输入是一个非空字符串,长度不超过3000 。测试数据不超过3000 行。

输出

对于每组输入,输出的回文子串的个数。

样例输入1

aba

aa

样例输出1

4

3

做法1

我们可以通过“枚举回文串中心”并“不断向外扩展”的方式,来找出所有的回文子串。

注意,奇数长度和偶数长度的回文串在处理的方式上存在一些差别,因此可能需要分别统计。

#include <bits/stdc++.h>
using namespace std;
int main() {
    string s;
    while (cin >> s) {
        int ans = 0;
        for (int i = 0, len; i < s.size(); ++i) {
            /* 统计奇数长度的回文串 */
            len = 0;
            while (i - len >= 0 && i + len < s.size() && s[i - len] == s[i + len]) {
                ++ans;
                ++len;
            }
            /* 统计偶数长度的回文串 */
            len = 0;
            while (i - len >= 0 && i + 1 + len <= s.size() && s[i - len] == s[i + 1 + len]) {
                ++ans;
                ++len;
            }
        }
        cout << ans << endl;
    }
    return 0;
}
相关文章
|
2月前
|
C++
18字符串处理函数
18字符串处理函数
12 0
|
2月前
|
索引 Python
使用字符串处理函数的文章
在编程中,字符串处理是一项常见的任务,涉及到对文本数据的各种操作,如查找、替换、分割、连接等。为了简化这些操作,许多编程语言都提供了一系列的字符串处理函数。本文将介绍一些常用的字符串处理函数,并附上相应的代码示例。
13 0
|
3月前
|
C++
c++字符串操作
c++字符串操作
30 0
|
11月前
|
C++
C/C++字符串处理函数
C/C++字符串处理函数
字符串处理函数总结
使用字符串处理函数 注意:在使用后字符串处理函数时,应当在程序文件的开头用
53 0
|
C++ 容器
C++ 字符串操作
文章目录 1.1 C++ 字符串操作 2.2字符数组的常用操作 2.3遍历字符数组的字符 3.标准库类型string 3.1 定义和初始化 3.2 string的操作 1)读写操作 2)使用`getline`读取一整行 3)string的方法操作 4)字符串和string相加 3.3处理string对象中的字符
|
Shell 编译器 iOS开发
字符串处理函数1
一、字符数组 二、字符串处理函数
字符串处理方法
字符串处理方法
89 0
字符串处理方法
|
索引
字符串操作的全面总结(2)
字符串操作的全面总结
123 0
字符串操作的全面总结(2)
|
存储 Windows 容器
字符串操作的全面总结(1)
字符串操作的全面总结
142 0
字符串操作的全面总结(1)