算法前缀和之abb

package com.zhang.reflection.面试.算法模版.前缀和;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
 * leafee 最近爱上了 abb 型语句,比如“叠词词”、“恶心心”
 * leafee 拿到了一个只含有小写字母的字符串,她想知道有多少个 "abb" 型的子序列?
 * 定义: abb 型字符串满足以下条件:  (子序列不要求连续,子串要求连续)
 *
 * 字符串长度为 3 。
 * 字符串后两位相同。
 * 字符串前两位不同。
 */
public class abb {
    /**
     * 可以说是前序和感觉
     * 先计算当前往前有多少个不同组合,直到遇到下一个相同字符再累加进去
     * abcbcc
     * 就以c来说
     * 第一次c前面有ab组合两种,dp['c'-'a'] = 0;
     * 第二个c前面有abcb有三种abb三种组合 dp['c'-'a'] = 2
     * 第三个c的时候可以和第一个组合,有两种,第二组合有三种,dp['c'-'a'] = 5
     * 第一次 0种符合的组合,第二次有2种符合的组合,第三次有5种符合的组合
     * 关键要先计数,下次遇到相同的字符再累加
     * @param
     * @return
     * @author louss
     * @date 2022/4/10 17:32
     */
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        String str = br.readLine();
        long[] sum = new long[26];
        long[] dp = new long[26];
        long result = 0;
        for(int i=0;i<n;i++){
            int index = str.charAt(i)-'a';
            result += dp[index];
            dp[index] += i - sum[index];
            sum[index]++;
        }
        System.out.println(result);
    }
}

全部评论

相关推荐

无情咸鱼王的秋招日记之薛定谔的Offer:好拒信,偷了,希望有机会用到
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享
正在热议
# 25届秋招总结 #
440928次浏览 4493人参与
# 春招别灰心,我们一人来一句鼓励 #
41537次浏览 524人参与
# 北方华创开奖 #
107332次浏览 599人参与
# 地方国企笔面经互助 #
7933次浏览 18人参与
# 同bg的你秋招战况如何? #
75751次浏览 552人参与
# 虾皮求职进展汇总 #
114497次浏览 885人参与
# 阿里云管培生offer #
119934次浏览 2219人参与
# 实习,投递多份简历没人回复怎么办 #
2454159次浏览 34849人参与
# 实习必须要去大厂吗? #
55696次浏览 960人参与
# 提前批简历挂麻了怎么办 #
149839次浏览 1977人参与
# 投递实习岗位前的准备 #
1195754次浏览 18547人参与
# 你投递的公司有几家约面了? #
33181次浏览 188人参与
# 双非本科求职如何逆袭 #
661963次浏览 7394人参与
# 如果公司给你放一天假,你会怎么度过? #
4734次浏览 55人参与
# 机械人春招想让哪家公司来捞你? #
157606次浏览 2267人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
11402次浏览 275人参与
# 发工资后,你做的第一件事是什么 #
12447次浏览 61人参与
# 工作中,努力重要还是选择重要? #
35638次浏览 384人参与
# 参加完秋招的机械人,还参加春招吗? #
20093次浏览 240人参与
# 我的上岸简历长这样 #
451937次浏览 8088人参与
# 实习想申请秋招offer,能不能argue薪资 #
39248次浏览 314人参与
# 非技术岗是怎么找实习的 #
155855次浏览 2120人参与
牛客网
牛客企业服务