Edisi # 36: Pelatihan TI - masalah saat ini dan tantangan dari perusahaan terkemuka

Menyerahkan kepada Anda pilihan tugas baru dari wawancara. Periksa solusi Anda untuk masalah dari artikel sebelumnya - di sini.



Teaser: dalam edisi berikutnya kami akan mencoba format baru. Kami bermitra untuk ini dengan satu perusahaan - pengecer terbesar yang dikenal untuk departemen IT-nya (tebakan diterima di komentar). Tetap disini, seperti kata mereka. Kolom ini didukung oleh agen perekrutan Spice IT .

Saya mengingatkan Anda bahwa garis besar artikel kami adalah ini - kami menerbitkan 2 pertanyaan yang tidak memerlukan kode penulisan untuk pemanasan. Selanjutnya, kami menerbitkan 3 tugas yang melibatkan penulisan kode dalam salah satu bahasa yang nyaman bagi Anda, kecuali ditentukan lain dalam tugas tertentu.
Juga, semua pertanyaan dan tugas berjalan dalam urutan kompleksitas.
Jadi mari kita mulai.

Pertanyaan


1. Temukan Baris yang hilang di Excel
Kami diberi lembar excel yang berisi bilangan bulat dari 1 hingga 50, termasuk keduanya. Namun, angka-angka dalam bentuk campur aduk dan ada 1 bilangan bulat yang hilang. Anda harus menulis kode untuk mengidentifikasi bilangan bulat yang hilang. Hanya logika yang diperlukan.

Transfer
excel, 1 50 . , , . , .

2. Tic Tac Toe Puzzle
Permainan Tic-Tac-Toe sedang dimainkan antara dua pemain dan itu dalam kondisi di bawah setelah enam bergerak.

Bisakah Anda menjawab pertanyaan-pertanyaan berikut?
  • Siapa yang akan memenangkan pertandingan, O atau X?
  • Manakah tanda keenam dan di posisi mana?

Anggap kedua pemain cukup cerdas.

Transfer
- , ( ) .
?
  • , ?
  • 6- ?

, .

Tugas


1. Temukan pemenang Game Nim
In Game of Nim, two players take turns removing objects from heaps or the pile of stones.
Suppose two players A and B are playing the game. Each is allowed to take only one stone from the pile. The player who picks the last stone of the pile will win the game. Given N the number of stones in the pile, the task is to find the winner, if player A starts the game.

Input:
The input line contains T, denoting the number of test cases. Then T test case follows, a single line of the input containing a positive integer N.

Output:
Print the winner i.e. Player A or Player B for each testcase in a separate line.

Constraints:
1 <= T <= 100
1 <= N <= 1000


Example:
Input:

2
3
15


Output: Penjelasan: Testcase 1: Player A menghapus batu 1 yang ada di atas, kemudian Player B menghapus batu 2 dan akhirnya pemain A menghapus batu terakhir.
Player A
Player A





Transfer
Nim .
, . . , , . N , , , .

:
T, . N .

:
, B, .

:
1 < = T < = 100
1 < = N < = 1000


:
:

2
3
15


:



:
1: 1, , 2,
, , — .

2. Pembalikan Antrian
Given a Queue Q containing N elements. The task is to reverse the Queue. Your task is to complete the function rev(), that reverses the N elements of the queue.

Input:
The first line of input contains an integer T denoting the Test cases. Then T test cases follow. The first line contains N which is the number of elements which will be reversed. Second line contains N space seperated elements.

Output:
For each testcase, in a new line, print the reversed queue.

Your Task:
This is a function problem. You only need to complete the function revyang mengambil antrian sebagai parameter dan mengembalikan para antrian terbalik . The pencetakan dilakukan secara otomatis oleh kode driver .

Kendala: Contoh: Input: Penjelasan: Testcase 1: Setelah membalikkan elemen antrian yang diberikan, antrian yang dihasilkan akan 6 2 10 1 3 4. Testcase 2: Setelah membalikkan elemen antrian yang diberikan, antrian yang dihasilkan akan 1 2 3 4.
1 ≤ T ≤ 100
1 ≤ N ≤ 105
1 ≤ elements of Queue ≤ 105




2
6
4 3 1 10 2 6
4
4 3 2 1
Output :

6 2 10 1 3 4
1 2 3 4





Transfer
Q, N . , . — rev(), N .

:
T, . T . N — , . N .

:
.

:
. rev, . .

:
1 ≤ T ≤ 100
1 ≤ N ≤ 105
1 ≤ ≤ 105


:
:

2
6
4 3 1 10 2 6
4
4 3 2 1

:
6 2 10 1 3 4
1 2 3 4


:
1: 6 2 10 1 3 4.
2: 1 2 3 4.

3. Operasi pada PriorityQueue
Given N integers, your task is to add these elements to the PriorityQueue. Also, given M integers, the task is to check if element is present in PriorityQueue. If present, print 1 and return the max element of priority queue, and then delete the max element. If not present, print -1.

Input Format:
First line of testcas contains number of testcases T. For each testcase, there will be 4 lines. First line contains N, number of elements to be inserted into the Priority Queue. Second line contains N positive integers separated by space. Third line contains M, fourth line contains M positive integers.

Output Format:
For each testcase, print «1» and max element in newlines if element to be found is present in the PriorityQueue, else print "-1".

Your Task:
Your task is to complete the functions insert(), find(), and delete(), such that it adds, find and delete the elements from the queue respectively.

Constraints:
1 <= T <= 100
1 <= N <= 103
1 <= M <= 103


Example:
Input:

1
8
1 2 3 4 5 2 3 1
5
1 3 2 9 10


Output:
1
5
1
4
1
3
-1
-1


Explanation:
Testcase 1: After inserting given elements, when we find 1, which is present, so we print 1, and then we print the top element of the PriorityQueue which is 5, and delete it. Similarly, when element is not present, just print "-1".

N , , PriorityQueue. , M , , , PriorityQueue. , 1 , . , -1.

:
. 4 . N — , . N , . MPriorityQueue, M .

:
«1» , PriorityQueue, "-1".

:
, insert(), find() delete() , , .

:
1 < = T < = 100
1 < = N < = 103
1 <= M < = 103


:
:

1
8
1 2 3 4 5 2 3 1
5
1 3 2 9 10


:
1
5
1
4
1
3
-1
-1


:
1: , PriorityQueue = 1 2 3 4 5 2 3 1. 1 3 2 9 10. «1» PriorityQueue, «1» PriorityQueue «5» . , , "-1".


1
, 1 n (n*(n+1)/2)
1 50
50*(50+1)/2 (, n = 50)
= 50*(51)/2
= 25*51
= 1275.

, , , , 1275. 1275 .

2
O . 9.
:
7- 5, X, O. , 6- , . – 6- 7, 9.

, , 6- 7. 5 .

, X, 9. . , .

1
printf("%s\n",(n % 2) ? "Player A" : "Player B");

2
{
    // add code here.
    stack<long long int> st;
    while(!q.empty())
    {
        int a=q.front();
        st.push(a);
        q.pop();
    }
    while(!st.empty())
    {
        q.push(st.top());
        st.pop();
    }
    return q;
}

3
static void insert(PriorityQueue<integer> q, int k){
q.add(k);
}

static boolean find(PriorityQueue<integer> q, int k){
return q.contains(k);
}

static int delete(PriorityQueue<integer> q){
int removed = q.remove();
return removed;
}

All Articles