zoukankan      html  css  js  c++  java
  • 2017年校招全国统一模拟笔试(第五场)编程题集合

    https://www.nowcoder.com/test/5986669/summary

    第一题:给你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<str.length()-1;i++){
    10             if(str.charAt(i)==str.charAt(i-1)&&str.charAt(i)==str.charAt(i+1)&&num[i-1]!=1&&num[i]!=1){
    11                 num[i] = 1;
    12                 ans++;
    13             }
    14         }
    15         for(int i = 0;i<str.length()-1;i++){
    16             if(str.charAt(i)==str.charAt(i+1)&&num[i]!=1&&num[i+1]!=1){
    17                 ans++;
    18             }
    19         }
    20         System.out.println(ans);
    21     }
    22 }

    第二题:求最长的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<str.length();i++){
    10             if(str.charAt(i)=='A'||str.charAt(i)=='T'||str.charAt(i)=='C'||str.charAt(i)=='G'){
    11                 int tmp = 0;
    12                 while(i<str.length()){
    13                     if(str.charAt(i)=='A'||str.charAt(i)=='T'||str.charAt(i)=='G'||str.charAt(i)=='C')
    14                         tmp++;
    15                     else
    16                         break;
    17                     i++;
    18                 }
    19                 if(tmp>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<str.length()/2;i++){
    17             if(str.charAt(i)!=str.charAt(i+tmp))
    18                 return false;
    19         }
    20         return true;
    21     }
    22 }

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

    第五题:给定一个整数的长度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     }

  • 相关阅读:
    Angular 组件通信的三种方式
    Vue 之keep-alive的使用,实现页面缓存
    Angular Service设计理念及使用
    Git提交规范
    angular的生命周期
    CPU 是如何认识和执行代码的
    Ubuntu 常用软件
    UltraSQL / sqlserver-kit (SQLServer DBA )高手
    便宜的网站模板下载
    Audio over Bluetooth: most detailed information about profiles, codecs, and devices
  • 原文地址:https://www.cnblogs.com/Tree-dream/p/8552461.html
Copyright © 2011-2022 走看看