1. 首页
  2. 软件开发
  3. 算法笔记2

算法笔记2

  • 发布于 2024-09-26
  • 1 次阅读

1.判断平衡子串
判断是否为平衡字符串,利用哈希表存储存储每种字符出现的次数。为了判断快速判断所有字符出现的次数是否相等,我们可以维护所有字符出现次数的最大值 maxVal,当满足map.size()*maxVal==i-j+1,所有字符出现的次数相等。

int maxVal=0;
for(int i=0;i<s.length();i++){

    map.put(s.charAt(i),map.getOrDefault(s.charAt(i),0)+1); //存储出现次数
    maxVal=Math.max(maxVal,map.get(s.charAt(i)));
    if(map.size()*maxVal==i+1){
   //是平衡字符串
   //需要进行的操作
}

2.判断回文字符串

public boolean isTrue(String str) {

        int len = str.length();
        for (int i = 0; i < len / 2; i++) {

            if (str.charAt(i) != str.charAt(len - 1 - i)) {

                return false;
            }
        }
        return true;
    }

原文链接: https://blog.csdn.net/qq_53568730/article/details/141649678