- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
例如,字符串 "abab" 需要将一个拆分为两个字符串:"ab" 和 "ab" 所以答案是1 并且字符串“ababab”不需要任何拆分,所以答案是 0。
我想出了一个解决方案,检查每个子字符串的条件并将结果存储在一个 bool 矩阵中,然后填充一个 int 矩阵,以便它找到最少的拆分数。关于如何使算法更快的任何想法?
bool condition(const int count[]) {
for (int i = 0; i <= 25; i++){
if (count[i] != 0 && count[i] % 2 == 0) {
return false;
}
}
return true;
}
int minPartion(std::string& str)
{
int n = str.size();
int i, j, k, L;
int** even = new int*[n];
for(int i = 0; i < n; ++i)
even[i] = new int[n];
int** minSplits = new int*[n];
for(int i = 0; i < n; ++i)
minSplits[i] = new int[n];
for (i = 0; i < n; i++)
{
even[i][i] = true;
minSplits[i][i] = 0;
}
for (int i = 0; i < n; i++) {
int count2[26] = {0};
for (int j = i; j < n; j++) {
count2[str[j] - 'a']++;
even[i][j] = condition(count2);
}
}
for (L = 2; L <= n; L++)
{
for (i = 0; i < n - L + 1; i++)
{
j = i + L - 1;
if (even[i][j])
minSplits[i][j] = 0;
else
{
minSplits[i][j] = INT_MAX;
for (k = i; k <= j - 1; k++)
minSplits[i][j] = min(minSplits[i][j], minSplits[i][k] + minSplits[k + 1][j] + 1);
}
}
}
return minSplits[0][n - 1];
}
最佳答案
一个简单的起点是将计数数组打包成两个 32 位字,一个表示哪些值是非零的,一个表示哪些值是奇数。您可以使用 |= uint32_t{1} << (letter - 'a')
更新这些和 ^= uint32_t{1} << (letter - 'a')
然后分别condition
变成一个简单的平等测试。
关于string - 将字符串拆分为最少数量的字符串,其中每个字母重复奇数次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62602999/
http://opencv-code.com/quick-tips/implementation-of-guo-hall-thinning-algorithm/ 在看郭霍尔算法,但我不明白它说的那部分
我知道这个方法检查整数是否为偶数,但是具体如何检查呢?我理解斐波那契或阶乘等例子的递归是如何工作的,但不理解这个。我认为由于语法原因我不明白。 // Assume n >= 0 public stat
我被困在一个作业上,需要程序接受多个数字,然后如果是奇数则输出"is",如果是偶数则输出“否”,并且不知道如何让程序接受超过 1 个 int,然后输出正确的 println。这是我到目前为止的代码。
这个测试行得通吗?: if (testInt/2).ofType(Integer){ //to-do if even } 我假设它会 iff 编译器在 ofType() 之前解析 testIn
我正在尝试更好地排列图像,而不仅仅是 1 列中的图像。示例见附件,每篇文章的图片可以在左右。 这是我的代码。HTML: Content 1
DAY16共3题: 奇♂妙拆分(简单数学) 区区区间间间(单调栈) 小AA的数列(位运算dp) 🎈 作者:Eriktse 🎈 简介:19
我是一名优秀的程序员,十分优秀!