博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2017年校招全国统一模拟笔试(第五场)编程题集合
阅读量:4462 次
发布时间:2019-06-08

本文共 2372 字,大约阅读时间需要 7 分钟。

第一题:给你n块瓷砖,每块瓷砖都有颜色,但是我们不想相邻的瓷砖颜色一致,所以要进行替换,求最少的替换数

思路:把连续的瓷砖分成两种情况,一是两块相连的,一个是三块相连的,两块相连的,替换哪个都一样,三块的替换中间的最优

1 import java.util.*; 2   3 public class Main { 4     public static void main(String[] args) { 5         Scanner cin = new Scanner(System.in); 6         String str = cin.nextLine(); 7         int num[] = new int[50]; 8         int ans = 0; 9         for(int i = 1;i

 

第二题:求最长的DNA序列

思路:统计相连的ATCG即可

1 import java.util.*; 2   3 public class Main { 4     public static void main(String[] args) { 5         Scanner cin = new Scanner(System.in); 6         String str = cin.nextLine(); 7         int num[] = new int[50]; 8         int ans = 0; 9         for(int i = 0;i
ans)20 ans = tmp;21 }22 }23 System.out.println(ans);24 }25 }

 

第三题:一个字符串由两个相同字符串连接而成,就称这个字符串是偶串,求最少删多少个字符可以构成

思路:每次删两个,然后对半比较

1 import java.util.*; 2   3 public class Main { 4     public static void main(String[] args) { 5         Scanner cin = new Scanner(System.in); 6         String str = cin.nextLine(); 7         for(int i = str.length()-2;i>0;i-=2){ 8             if(deal(str.substring(0,i))){ 9                 System.out.println(i);10                 break;11             }12         }13     }14     static boolean deal(String str){15         int tmp = str.length()/2;16         for(int i = 0;i

 

第四题:没有看懂那个是啥

 

 

第五题:给定一个整数的长度N,根据已给的提示猜这个数字。第i个提示是"Y"或者"N",这个数是否是i的倍数,请计算出长度为n的合法的提示的个数。

思路:如果第I是个素数的话,那么这个数与前面的数没有任何关系。

  如果第i个数不是素数的话,那么它与前面的它的因数统一即可

  如果第i个是素数的次方的话,它不能唯一确定,它得取决于前面的值,总数也就是前面的因数+1

1  import java.util.Scanner; 2     public class Main { 3         public static void main(String[] args) { 4             Scanner scanner = new Scanner(System.in); 5             int len=scanner.nextInt(); 6             long ans=1; 7             boolean[] visited = new boolean[len+1]; 8             for(int i=2; i<=len; i++) { 9                 if(visited[i])10                     continue;11                 for(int j=2*i; j<=len; j+=i)12                     visited[j] = true;13                 int count=0;14                 long k=i;  //int会溢出15                 while(k<=len) {16                     k*=i;17                     count++;18                 }19                 ans=ans*(count+1)%1000000007;20             }21             System.out.println(ans);22         }23     }

 

 

转载于:https://www.cnblogs.com/Tree-dream/p/8552461.html

你可能感兴趣的文章
魅蓝Note有几种颜色 魅蓝Note哪个颜色好看
查看>>
使用PullToRefresh实现下拉刷新和上拉加载
查看>>
透明度百分比与十六进制转换
查看>>
HBase表预分区
查看>>
NSBundle,UIImage,UIButton的使用
查看>>
vue-cli3 中console.log报错
查看>>
GridView 中Item项居中显示
查看>>
UML类图五种关系与代码的对应关系
查看>>
如何理解作用域
查看>>
从无到满意offer,你需要知道的那些事
查看>>
P1516 青蛙的约会 洛谷
查看>>
SDOI2011 染色
查看>>
JQuery EasyUI combobox动态添加option
查看>>
面向连接的TCP概述
查看>>
前端快捷方式 [记录]
查看>>
亲测可用,解决端口被占用的指令!!
查看>>
MySQL--视图、触发器、事务、存储过程、内置函数、流程控制、索引
查看>>
Django--数据库查询操作
查看>>
自定义配置文件的使用
查看>>
js-20170609-运算符
查看>>