本文主要是介绍2262. 字符串的总引力,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
字符串的 引力 定义为:字符串中 不同 字符的数量。
例如,“abbca” 的引力为 3 ,因为其中有 3 个不同字符 ‘a’、‘b’ 和 ‘c’ 。
给你一个字符串 s ,返回 其所有子字符串的总引力 。
子字符串 定义为:字符串中的一个连续字符序列。
复杂度:O(N)
思路:在正序遍历数组的时候,使用map[26]记录每个字母最新出现的位置,tmp = tmp - map[i],规律比较难发现。
class Solution {public long appealSum(String s) {// ABBCA // 用HashMap记录上一次字符出现的位置,int[] map = new int[26];Arrays.fill(map, -1);long ans = 0;int n = s.length();long tmp = 0;for(int i=0; i<n; i++) {char ch = s.charAt(i);tmp = tmp + i - map[ch-'a'];ans = ans + tmp;map[ch-'a'] = i;}return ans;}
}
这篇关于2262. 字符串的总引力的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!