爱奇艺2019秋招笔试题(Java)

时间:20180915     10:00~12:00

一、幸运ID      

       小C有一张票,这张票的ID是长度为6的字符串,每个字符都是数字,他想让这个ID变成他的辛运ID,所以他就开始更改ID,每一次操作,他可以选择任意一个数字并且替换它。如果这个ID的前三位数字之和等于后三位数字之和,那么这个ID就是辛运的。你帮小C求一下,最少需要操作几次,能使ID变成辛运ID

输入:

输入只有一行,是一个长度为6的字符串。

输出:

输出这个最小操作次数

 

样例输入

000000

样例输出

0

 

Hint

输入样例2

000018

输出样例2

1

二、局长的食物

题目大意:

局长一共有N种食物,每种有i份,他每天只吃一份食物,或只买一份食物(一天中要么吃要么买,不会同时进行)求第M天P食物的份数在总食物份数中的排名。

输入:

第一行,三个数N、M、P,分别表示食物的种类,天数和要求的食物。

第二行,N个数,表示每种食物的份数。

接下来M行,每一行有两个数,第一个数表示吃或买(A表示买,B表示吃),第二个数表示对哪种食物进行操作。

输出:

P食物的排名

样例输入:

3 4 2

5 3 1

B 1

A 2

A 2

A 3

样例输出:

1

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int food = sc.nextInt();
		int day = sc.nextInt();
		int p = sc.nextInt();
		int[] foods = new int[food]; 
		for(int i = 0; i < food; i++)
			foods[i] = sc.nextInt();
		sc.nextLine();
		for(int i = 0; i < day; i++){
			String s = sc.nextLine();
			String[] str = s.split(" ");
			if(str[0].equals("A"))
				foods[Integer.parseInt(str[1])-1]+=1;
			else if(str[0].equals("B"))
				foods[Integer.parseInt(str[1])-1]-=1;
		}
		int result = 1;
		for(int j = 0; j < food; j++){
			if(foods[j] > foods[p-1])
				result++;
		}
		System.out.println(result);
	}
}

 

你可能感兴趣的:(考面经)