public static int[] findEqualWeightSubstrings(String s) {
int n = s.length();
int totalWeight = 0;
for (char c : s.toCharArray()) {
totalWeight += (int) c;
}
int[] prefixSum = new int[n + 1];
for (int i = 0; i < n; i++) {
prefixSum[i + 1] = prefixSum[i] + (int) s.charAt(i);
}
for (int i = 1; i < n; i++) {
for (int j = i + 1; j < n; j++) {
int leftWeight = prefixSum[i];
int middleWeight = prefixSum[j] - prefixSum[i+1];
int rightWeight = totalWeight - prefixSum[j+1];
if (leftWeight == middleWeight && middleWeight == rightWeight) {
return new int[]{i, j};
}
}
}
return new int[]{0, 0};
}
给定一个小写字母组成的字符s,请找出字符串中两个不同的位置的字符作为分割点,使得字符串分成三个连续字符串且子串权重相等,注意子串不包含分割点。 若能找到满足条件的分割点,请输出这两个分割点在字符串中的
最新推荐文章于 2025-07-07 10:25:34 发布
本文介绍了一个Java方法`findEqualWeightSubstrings`,用于在一个给定的字符串中找到两个具有相同权重的子串,通过计算字符值之和和前缀和来实现。

969

被折叠的 条评论
为什么被折叠?



