日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Lintcode 738.Count Different Palindromic Subsequences go

發布時間:2023/12/29 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Lintcode 738.Count Different Palindromic Subsequences go 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

/**
738 · 計數回文子序列
算法
Hard
Accepted Rate
34%

DescriptionSolutionNotesDiscussLeaderboard
Description
給出一個字符串 S, 計算字符串 S 中不同非空回文子序列的數量, 返回這個數對 10^9 + 7 取模后得結果.
字符串 S 的子序列可以通過刪去 S 中 0 個或多個字符得到. 一個序列如果是回文的, 那么它逆序后與原序列相等.
兩個序列 A[1], A[2], … B[1], B[2], … 如果存在 A[i] != B[i], 那么這兩個序列是不同的.

S 長度的范圍為 [1, 1000].
S 中所有的字符 S[i] 均來自集合 {‘a’, ‘b’, ‘c’, ‘d’}.

Example
樣例 1:

輸入:“bccb”
輸出:6
解釋:
6 個不同的非空回文子序列為 “b”, “c”, “bb”, “cc”, “bcb”, “bccb”.
注意 bcb 只計一次, 即使它出現了兩次
樣例 2:

輸入:“abcdabcdabcdabcdabcdabcdabcdabcddcbadcbadcbadcbadcbadcbadcbadcba”
輸出:104860361
解釋:
字符串 S 有3104860382個不同的非空回文子序列, 對 10^9 + 7 取模后得 104860361
Tags
Company
領英

https://www.cnblogs.com/beiyeqingteng/p/11206410.html

https://www.lintcode.com/problem/738/
*/

package main/*** @param str: a string S* @return: the number of different non-empty palindromic subsequences in S*/ func countPalindSubseq(str string) int {// write your code herevar md int = 1e9 + 7if str == "" {return 0}var n int = len(str)if n <= 0 {return 0}var dp [][]int = make([][]int, n)for i := 0; i < n; i++ {dp[i] = make([]int, n)dp[i][i] = 1}for dis := 1; dis < n; dis++ {for i := 0; i < n - dis; i++ {var j int = i + disif str[i] == str[j] {var low = i + 1var high = j - 1for {if low > high || str[low] == str[j] {break}low += 1}for {if low > high || str[high] == str[j] {break}high -= 1}if low > high {dp[i][j] = 2*dp[i+1][j-1] + 2} else if low == high {dp[i][j] = 2*dp[i+1][j-1] + 1} else {dp[i][j] = 2*dp[i+1][j-1] - dp[low+1][high-1]}} else {dp[i][j] = dp[i+1][j] + dp[i][j-1] - dp[i+1][j-1]}if dp[i][j] < 0 {dp[i][j] += md} else {dp[i][j] %= md}}}return dp[0][n-1] }

總結

以上是生活随笔為你收集整理的Lintcode 738.Count Different Palindromic Subsequences go的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。