假设我们有一个字符串;我们必须计算该字符串中存在多少个回文子串。具有不同起始索引或结束索引的子串被计数为不同的子串,即使它们包含相同的字符。因此,如果输入类似于“aaa”,则输出将为6,因为有六个回文子串,例如“a”、“a”、“a”、“aa”、“aa”、“aaa”。为了解决这个问题,我们将遵循以下步骤:count := 0,对于i in range 0到字符串长度,对于j in range i + 1到字符串长度 + 1,temp := 从索引i到j的子串,如果… 阅读更多
假设我们有两个字符串s1和s2,我们必须编写一个函数来返回true,如果s2包含s1的排列。我们可以说第一个字符串的一个排列是第二个字符串的子串。因此,如果字符串s1 =“abc”,第二个字符串s2是“findcab”,则结果将为true,因为“abc”的排列为true。即“cab”。为了解决这个问题,我们将遵循以下步骤:创建两个大小为26的向量cnt1和cnt2,对于i in range 0到s1,将cnt1[s1[i] – 'a']的值增加1… 阅读更多
假设我们有不同面额的硬币和总金额。我们必须编写一个模块来计算构成该金额的组合数量。我们可以假设我们每种硬币的数量是无限的。因此,如果金额为5且硬币为[1, 2, 5],则有四种组合。(1+1+1+1+1)、(1+1+1+2)、(1+2+2)、(5)。为了解决这个问题,我们将遵循以下步骤:创建一个大小为amount + 1的数组dp,dp[0] := 1,n := 硬币数组的大小,对于i in range 0到n – 1,对于j in range coins[i]到… 阅读更多