笔试题汇总

1.TCL面试

字符串的处理

笔试题汇总_第1张图片

package test2;


import java.util.Scanner;


public class a1 {


public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String buff = sc.nextLine();
String key = sc.nextLine();
int what = sc.nextInt();
int output = jsonGetValue(buff,key,what);
System.out.println(output);
}

public static int jsonGetValue(String data,String key,int what){
String []keys = key.split("\\.");
int loc = 0;
for(String k : keys ){
if(loc!=1)
loc = data.indexOf(k, loc);
else
loc = data.indexOf(k, loc+k.length());
System.out.println("loc"+loc);
}
int l1=data.indexOf("[", loc);
int l2=data.indexOf("]", loc);
String subS = data.substring(l1+1, l2);
String []vals = subS.split(",");

//System.out.println(key+":key");
//System.out.println(subS);
//for(String k : keys )
// System.out.println(k);

int val =  Integer.parseInt(vals[what-1]);
return val;
}

}

2.科大讯飞

1.* 分糖果:科大讯飞编程题

* 小明和小红是好朋友,但最近遇到一个棘手的问题,有一盒糖果要分成两份但是每颗糖果质量都不尽相同,
* 但为了分配的公平每份糖的糖果数量相差不得超过1,在此条件下两份糖果的质量差距尽可能小。
* 输入一行数,包含一个数n,代表糖果数量,后面一次是n个整数一次表示每个糖果的质量,每个糖果的质量都是1到450
* 之间的一个整数,每盒最多有20个糖果。
* 输出:每个样例输出两个数字分别为两堆糖果的质量,如不相同,先小后大。
* 样例:输入:5 9 6 5 8 7

* 输出:17 18

import java.util.Scanner;

public class Main {

static int res,gap,target,n,sum;

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
int [] sugers = new int[n];
for(int i=0;i sugers[i] = sc.nextInt();
sum += sugers[i];
}
target = sum / 2;  
        res = 0;
        gap = Integer.MAX_VALUE;
        search(sugers, 0, 0, 0);  
        if(res>sum-res) 
        System.out.println(sum-res + " " + res);  
        else 
        System.out.println(res + " " + (sum-res));  
}

public static void search(int[] sugers, int weight, int index, int count)  
{    
    if (count == n/2) {  
        if (gap > Math.abs(sum - 2 * weight)) {  
            res = weight;  
            gap = Math.abs(2 * weight - sum);  
        }  
    }  
    else {  
        if (index < sugers.length) {  
            search(sugers,weight, index + 1, count);  
            search(sugers, weight+sugers[index], index + 1, count+1);  
        }  
    }  
}

}

2.小红非常喜欢素数,现有q组数(均为1,2,3,4,....n),他想知道针对每一组,第k个素数是多少?

笔试题汇总_第2张图片

#include
#include
#include
#define MAX 100001
int isprime(int n){
int i=0;
if(n<=1)return 0;
for(i=2;i<=sqrt(n);i++)
if(n%i==0)break;
if(i<=sqrt(n))return 0;
else return 1;
}
int main(){
int isnum[MAX];
    int n;
int t=1;
for (int i=2;;i++){
    if(t>MAX)break;
        if(isprime(i)){
           isnum[t]=i;
           t++;
}
}
scanf("%d",&n);
while(n--){
int temp=0;
scanf("%d",&temp);
    printf("%d\n",isnum[temp]);
}
return 0;

你可能感兴趣的:(面试,笔试)