蓝桥杯练习题(七)

前言

本文主要是【算法】——蓝桥杯练习题(七)的文章,如果有什么需要改进的地方还请大佬指出⛺️

作者简介:大家好,我是听风与他
☁️博客首页:CSDN主页听风与他
每日一句:狠狠沉淀,顶峰相见

目录

    • 前言
    • 1658.不同子串
    • 605.年号字串
    • 1049.重复字符串
    • 2142.字符统计
    • 文章末尾

1658.不同子串

package 蓝桥杯第七次;

import java.util.HashSet;
import java.util.Set;

public class 不同子串 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Set<String> set = new HashSet<>();
		String s = "0100110001010001";
		for(int i=0;i<s.length();i++) {
			for(int j=i;j<s.length();j++) {
				if(set.contains(s.substring(i, j+1))) {
					continue;
				}else {
					set.add(s.substring(i, j+1));
				}
			}
		}
		System.out.println(set.size());
	}

}

605.年号字串

package 蓝桥杯第七次;

public class 年号字串 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		for(int i=0;i<26;i++) {
			for(int j=0;j<26;j++) {
				for(int k=0;k<26;k++) {
					if(i+1+26*(j+1)+26*26*(k+1)==2019) {
						 System.out.println((char)(k+65)+""+(char)(j+65)+""+(char)(i+65));
						 break;
					}
				}
			}
		}
	}

}

1049.重复字符串

package 蓝桥杯第七次;

import java.util.Scanner;

public class 重复字符串 {
/*
3
abcabcbac
 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int k = sc.nextInt();
		String s = sc.next();
		int n = s.length()/k;//分组数
		int ans = 0;
		int a[] = new int[26];
		for(int i=0;i<n;i++) {
			for(int j=0;j<26;j++) {a[j]=0;}
			int max = 0;
			for(int j=0;j<k;j++) {
				int x = s.charAt(i+j*n);
				a[x-'a']++;
				max = Math.max(max, a[x-'a']);
			}
			ans += k-max;
		}
		if(s.length()%k!=0) {
			System.out.println(-1);
		}else {
			System.out.println(ans);
		}
		
	}

}

2142.字符统计

import java.util.Scanner;

public class Main {
/*
BABBACAC
AB
 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		String s = sc.next();
		int a[] = new int[26];
		int max=0;
		for(int i=0;i<s.length();i++) {
			a[s.charAt(i)-65]++;
			max = Math.max(max, a[s.charAt(i)-65]);
		}
		for(int i=0;i<26;i++) {
			if(a[i]==max) {
				System.out.print((char)(i+65));
			}
		}
	}

}

文章末尾

在这里插入图片描述

你可能感兴趣的:(蓝桥杯,java,算法)