首页 > 其他分享 >647. 回文子串

647. 回文子串

时间:2023-06-07 14:22:36浏览次数:42  
标签:子串 int len 647 字符串 dp 回文

给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目。

回文字符串 是正着读和倒过来读一样的字符串。

子字符串 是字符串中的由连续字符组成的一个序列。

具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。


输入:s = "abc"
输出:3
解释:三个回文子串: "a", "b", "c"

> 动态规划


class Solution {
public:
    int countSubstrings(string s) {
        int len = s.size();
        vector<vector<int>> dp(len,vector<int>(len,1));
        int res = len;
        for(int i = len-1;i >= 0;i--){
            for(int j = len-1;j > i;j--){
                if(s[i] == s[j]){
                    dp[i][j] = dp[i+1][j-1];
                }
                else{
                    dp[i][j] = 0;
                }
                if(dp[i][j] == 1){
                    res++;
                }
            }
        }
        return res;
    }
};

标签:子串,int,len,647,字符串,dp,回文
From: https://www.cnblogs.com/lihaoxiang/p/17463162.html

相关文章

  • LeetCode 9.回文数
    LeetCode9.回文数思路分两种情况。如果值为负数,则当前数肯定不是回文数如果值为正数,则将其数值反转后与原数值比较,如果相同则是回文数代码classSolution{publicbooleanisPalindrome(intx){if(x<0)returnfalse;inttmp=0,num=x;while(num......
  • 1156. 单字符重复子串的最大长度
    如果字符串中的所有字符都相同,那么这个字符串是单字符重复的字符串。给你一个字符串 text,你只能交换其中两个字符一次或者什么都不做,然后得到一些单字符重复的子串。返回其中最长的子串的长度。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/swap-for-longest-repeated-......
  • 【loj3396】novel(AC自动机维护文本串子串的匹配信息)
    设当前询问的串为\(s_i\)记为\(t\)。考虑\(r\)右移,维护每个\(l\)对应的\(g(l,r)\)和\(\max_{l}\frac{g(l,r)}{r-l+1}\)即可。最基本的观察是:当\(r\)右移后,考虑\(t_{1..r}\)在AC自动机上匹配到的点\(p\),那么对于\(p\)的任意祖先(包含\(p\))\(u\),都会给\(l\leq......
  • 刷题日记--最长公共子串问题
    题目描述:给定两个字符串str1和str2,输出两个字符串的最长公共子串abcdebebcd==>bcd实现代码:实现代码publicclassMaxSubString{publicstaticvoidmain(String[]args){Stringst1="abcde";Stringst2="ace";System.out.println......
  • Leetcode 1156. 单字符重复子串的最大长度
    题目:如果字符串中的所有字符都相同,那么这个字符串是单字符重复的字符串。给你一个字符串 text,你只能交换其中两个字符一次或者什么都不做,然后得到一些单字符重复的子串。返回其中最长的子串的长度。难度:中等示例1:输入:text="ababa"输出:3示例2:输入:text="aaabaaa"输出......
  • 算法刷题记录:[NOIP1999]回文数
    题目链接https://ac.nowcoder.com/acm/contest/19859/G题目分析高精度相加+进制转换+判断回文的模拟题。AC代码//Problem:[NOIP1999]回文数//Contest:NowCoder//URL:https://ac.nowcoder.com/acm/contest/19859/G//MemoryLimit:262144MB//TimeLimit:20......
  • HDU1403(后缀数组--最长公共子串)
    题目:LongestCommonSubstring题意:判断给定的两个串中,最长的公共串。思路:将它们合并为一个串,然后利用后缀数组求解。首先是二倍增算法:时间复杂度为O(n*log(n))#include<stdio.h>#include<string.h>#definemax1000010intwa[max],wb[max],wv[max],ws[max];intrank[max],he......
  • 蓝桥杯 基础练习 特殊回文数(C++)
    资源限制内存限制:512.0MBC/C++时间限制:1.0sJava时间限制:3.0sPython时间限制:5.0s问题描述123321是一个非常特殊的数,它从左边读和从右边读是一样的。输入一个正整数n,编程求所有这样的五位和六位十进制数,满足各位数字之和等于n。输入格式输入一行,包含一个正整......
  • 5. 最长回文子串
    给你一个字符串 s,找到 s 中最长的回文子串。如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。 classSolution{publicstaticStringlongestPalindrome(Strings){//边界条件判断if(s.length()<2)returns;......
  • 2023-05-27:给你一个只包含小写英文字母的字符串 s 。 每一次 操作 ,你可以选择 s 中两
    2023-05-27:给你一个只包含小写英文字母的字符串s。每一次操作,你可以选择s中两个相邻的字符,并将它们交换。请你返回将s变成回文串的最少操作次数。注意,输入数据会确保s一定能变成一个回文串。输入:s="letelt"。输出:2。答案2023-05-27:大体过程如下:1.定义结......