当前位置: 首页 > news >正文

蓝桥杯刷题8

1. 世纪末的星期

import java.util.Calendar;
public class Main {public static void main(String[] args) {Calendar calendar = Calendar.getInstance();for(int year = 1999;year<100000;year+=100){calendar.set(Calendar.YEAR,year);calendar.set(Calendar.MONTH,11);calendar.set(Calendar.DAY_OF_MONTH,31);if(calendar.get(Calendar.DAY_OF_WEEK)==1){System.out.println(year);break;}}}
}

 2. 星期计算

public class Main {public static void main(String[] args) {int n = 20;for(int i = 0;i<21;i++){n = (20*n)%7;}System.out.println((n+5)%7+1);}
}

3. 更小的数

【解法一 模拟法 通过40%】

StringBuilder:内容是可变的,String:内容是不变的

public StringBuilder(String str):根据字符串的内容,来创建可变字符串对象。

public StringBuilder reverse():返回相反的字符序列。

public StringBuilder append(任意类型):添加数据,并返回对象本身。

public String toString():通过toString就可以实现把StringBuilder转换为String

public int length()返回对象内容长度

replace(int start, int end, String str):将起始位置为start,结束位置为end-1的子串替换为str。不生成新的StringBuilder对象,在原来的StringBuilder对象上修改

String 字符串类型,它的比较值用compareTo方法,它从第一位开始比较,,如果遇到不同的字符,则马上返回这两个字符的ASCII码的差值,返回值是int类型

import java.util.*;
public class Main{public static void main(String[] args){Scanner sc = new Scanner(System.in);String str = sc.next();int count = 0;for(int i = 0;i<str.length();i++){for(int j = i+1;j<str.length();j++){StringBuilder s = new StringBuilder(str);s.replace(i,j+1,new StringBuilder(str.substring(i,j+1)).reverse().toString());if(s.toString().compareTo(str)<0){count++;}}}System.out.println(count);sc.close();}
}

【解法二 直接暴力 100%】

import java.util.*;
public class Main{public static void main(String[] args){Scanner sc = new Scanner(System.in);String str = sc.next();int count = 0;for(int i = 0;i<str.length();i++){for(int j = i+1;j<str.length();j++){for(int p = i,q=j;p<q;p++,q--){char a1 = str.charAt(p);char a2 = str.charAt(q);if(a1==a2) continue;        if(a1>a2) count++;break;}}}System.out.println(count);sc.close();}
}

【解法三 DP】

import java.util.*;
public class Main{public static void main(String[] args){Scanner sc = new Scanner(System.in);String str = sc.next();int dp[][] = new int[5002][5002];int count = 0;for(int k = 1;k<str.length();k++){for(int i = 0;i+k<str.length();i++){int j = i+k;if(str.charAt(i) < str.charAt(j)) dp[i][j]=0;if(str.charAt(i) > str.charAt(j)) dp[i][j]=1;if(str.charAt(i) == str.charAt(j)) dp[i][j]=dp[i+1][j-1];if(dp[i][j]==1) count++;}}System.out.println(count);sc.close();}
}

4. 接龙数列

import java.util.*;
public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int num = scan.nextInt();String arr[] = new String[num];for(int i = 0;i<num;i++){arr[i] = scan.next();}int dp[] = new int[10];for(int i = 0;i<num;i++){int head = arr[i].charAt(0)-'0';int tail = arr[i].charAt(arr[i].length()-1)-'0';dp[tail] = Math.max(dp[head]+1,dp[tail]);}int max = 0;for(int i = 0;i<10;i++){max=Math.max(max,dp[i]);}System.out.println(num-max);scan.close();}
}

5. 填充

import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);char s[] = scan.next().toCharArray();int count = 0;for(int i = 0;i<s.length-1;){if(s[i]==s[i+1]||s[i]=='?'||s[i+1]=='?'){count++;i+=2;}else{i++;}}System.out.println(count);scan.close();}
}
http://www.lryc.cn/news/325959.html

相关文章:

  • Java中的String字符串练习
  • 基于JavaWeb SSM mybatis 学生信息管理系统设计和实现以及文档报告
  • 二进制源码部署mysql8.0.35
  • PHP 读取嵌入式数据 SQLite3
  • 【代驾+顺风车+货运】全开源双端APP代驾+顺风车+货运代驾小程序源码
  • C++语言学习(三)—— 文件操作
  • linux文本三剑客 --- grep、sed、awk
  • leetcode 107.二叉树的层序遍历II
  • Java生成唯一ID的方式有哪些?
  • 代码随想录day44:动态规划over,回文子串及字序列
  • ElasticSearch启动报错:Exception in thread “main“ SettingsException
  • git配置密钥
  • Pandas库常用方法、函数集合
  • Qt实现TFTP Server和 TFTP Client(一)
  • MySQL数据库的日志管理以及备份和恢复
  • Maven发布开源框架到远程仓库
  • Qt创建窗口选择的三个父类介绍 ----- QWidget、QMainWindow、QDialog
  • 论文翻译 - Defending Against Alignment-Breaking Attacks via Robustly Aligned LLM
  • Kafka总结问题
  • 【RPG Maker MV 仿新仙剑 战斗场景UI (八)】
  • 【PyQt】18 -菜单等顶层操作
  • 线性代数基础概念和在AI中的应用
  • elasticsearch _cat/indices docs.count is different than <index>/_count
  • 关系型数据库mysql(7)sql高级语句
  • 计算机网络——网络基础1
  • ERDUnet: An Efficient Residual Double-codingUnet for Medical Image Segmentation
  • vue响应式基础
  • 每天上万简历,录取不到1%!阿里腾讯的 offer 都给了哪些人?
  • 外包干了20天,技术退步明显.......
  • 4核8G云服务器,阿里云要多少钱?