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

Hai
Hari ini dalam tugas rubrik kami dengan wawancara di LinkedIn.

gambar

Jika sedang on the fly, on the fly, selesaikan semuanya dan pikirkan serius untuk mengirim ke LinkedIn, kami sarankan Anda mendengarkan rilis podcast kami.

Benar, ini tentang produk, tetapi di dalamnya kami bertanya kepada Dmitry Berdnikov, Direktur Strategi & Operasi LinkedIn, secara terperinci tentang semua tahap wawancara dengan perusahaan.

Dengarkan di mana nyaman ↓
Podcast Apple
Google Podcast
Yandex. Musik
Atau di halaman podcast

Dan omong-omong, jawaban untuk masalah sebelumnya telah dipublikasikan ! Periksa dengan mereka.

Pertanyaan


1. Masalah Monty Hall
Misalkan Anda berada di sebuah acara permainan, dan Anda diberi pilihan tiga pintu: Di belakang satu pintu adalah mobil; di belakang yang lain, kambing. Anda memilih pintu, katakan Tidak. 1, dan tuan rumah, yang tahu apa yang ada di balik pintu, membuka pintu lain, katakan No. 3, yang memiliki seekor kambing. Dia kemudian berkata kepada Anda, "Apakah Anda ingin memilih pintu No. 2? "
Apakah menguntungkan Anda untuk mengalihkan pilihan Anda?

gambar
Terjemahan
Misalkan Anda berada di sebuah acara permainan, dan Anda diberi pilihan tiga pintu: satu pintu mobil; untuk kambing lainnya. Anda memilih pintu, katakanlah, No. 1, dan pembawa acara, yang tahu apa yang ada di balik pintu, membuka pintu lain, katakanlah, No. 3, di mana ada seekor kambing. Lalu dia memberi tahu Anda, "Apakah Anda ingin memilih pintu nomor 2?"
Apakah menguntungkan bagi Anda untuk mengubah pilihan Anda?

2. Temukan Jar dengan pil yang terkontaminasi
Anda memiliki 5 botol pil. Setiap pil memiliki berat 10 gram, kecuali pil yang terkontaminasi yang terkandung dalam satu botol, di mana masing-masing pil memiliki berat 9 gram. Dengan skala tertentu, bagaimana Anda bisa tahu tabung mana yang memiliki pil yang terkontaminasi hanya dalam satu pengukuran?

Terjemahan
Anda memiliki 5 kaleng tablet. Setiap tablet memiliki berat 10 gram, terkecuali tablet yang terinfeksi terkandung dalam satu toples, di mana setiap tablet memiliki berat 9 gram. Anda memiliki skala, bagaimana Anda dapat menentukan di bank mana pil yang terinfeksi berada, hanya dalam satu penimbangan?

Tugasnya


1. Substring yang berbeda
Diberikan string S yang terdiri dari karakter alfabet huruf besar. Kembalikan jumlah substring berbeda dari ukuran 2 yang muncul di S sebagai substring yang berdekatan.

Input: Baris pertama berisi 'T' yang menunjukkan jumlah testcases. Kemudian ikuti deskripsi kasus uji. Baris T berikutnya berisi string S.

Output: Keluarkan jumlah substring berbeda dari ukuran 2 di S.

Kendala:
1<=T<=50
1<=|S|<=100


Contoh:
Masukan:
2
ABCAB
XYZ


Keluaran:
3
2


Penjelasan: Untuk "ABCAB", tiga substring berbeda dari ukuran 2 adalah "AB", "BC" dan "CA". Untuk "XYZ", dua substring berbeda dari ukuran 2 adalah "XY" dan "YZ".

Terjemahan
Diberikan string S, terdiri dari karakter alfabet huruf besar. Kembalikan jumlah substring berbeda dari ukuran 2 yang muncul dalam S sebagai substring yang berdekatan.

Input: Baris pertama berisi 'T', yang menunjukkan jumlah tes. Berikut ini adalah uraian dari tes-tes tersebut. Baris T berikutnya berisi string S.

Output: Mencetak nomor tunggal - jumlah substring berbeda dari ukuran 2 dalam string S.

Keterbatasan:
1< = T< = 50
1<= / S / < = 100


Contoh:
Masukan:
2
ABCAB
XYZ


Keluaran:
3
2


Penjelasan: Untuk "ABCAB," tiga substring berbeda dari ukuran 2 adalah "AB," "BC," dan "CA". Untuk "XYZ", dua substring terpisah dengan ukuran 2 adalah "XY" dan "YZ".

2. Urutan berurutan terpanjang
Diberikan array array [] dari bilangan bulat positif. Temukan panjang sub-urutan terpanjang sehingga elemen-elemen di bagian berikutnya adalah bilangan bulat berurutan, angka berurutan bisa dalam urutan apa pun.

Masukan:
Baris input pertama berisi T, jumlah kasus uji. Baris pertama dari setiap test case berisi bilangan bulat tunggal N.
Baris berikutnya berisi array integer N.

Keluaran:
Cetak output dari masing-masing test case dalam satu baris terpisah.

Kendala:
1 <= T <= 100
1 <= N <= 105
0 <= a[i] <= 105


Contoh:
Masukan:
2
7
2 6 1 9 4 5 3
7
1 9 3 10 4 20 2


Keluaran:
6
4


Penjelasan:
Testcase 1: Angka-angka berurutan di sini adalah 1, 2, 3, 4, 5, 6. Keenam angka ini membentuk subsurensi berturut-turut terpanjang.

Testcase2: 1, 2, 3, 4 adalah urutan berurutan terpanjang.

Terjemahan
Array bilangan bulat arr [] diberikan. Tentukan panjang dari urutan terpanjang sedemikian rupa sehingga elemen-elemen dalam urutan berikutnya adalah bilangan bulat berurutan , angka berurutan dapat berurutan .

Masukan:
Baris input pertama berisi T, jumlah kasus uji. Baris pertama dari setiap tes berisi satu bilangan bulat N.
Baris berikutnya berisi array integer N.

Keluaran:
Cetak output dari setiap tes pada baris yang terpisah.

Keterbatasan:
1 < = T < = 100
1 < = N < = 105
0 <= a[i] < = 105


Contoh:
Masukan:
2
7
2 6 1 9 4 5 3
7
1 9 3 10 4 20 2


Keluaran:
6
4


Penjelasan
Uji 1: Angka berurutan di sini adalah 1, 2, 3, 4, 5, 6. 6 angka ini membentuk subquery berurutan terpanjang.

Tes 2: 1, 2, 3, 4 - Urutan berurutan terpanjang.

3. Substring palindrom yang berbeda
Diberikan string karakter ASCII huruf kecil, temukan semua sub-string palindromik kontinyu yang berbeda.

Masukan:
Baris input pertama berisi bilangan bulat T yang menunjukkan jumlah kasus uji. Kemudian ikuti uji T. Setiap test case berisi string.

Keluaran:
Cetak hitungan sub-string palindromik kontinyu yang berbeda.

Kendala:
1<=T<=10^5
1<=length of string<=10^5


Contoh:
Masukan:
2
abaaa
geek


Keluaran:
5
4

Terjemahan
Diberikan string karakter ASCII huruf kecil, temukan semua substring palindrom kontinu masing-masing.

Masukan:
Baris input pertama berisi bilangan bulat T, yang menunjukkan jumlah tes. Kemudian tes dilanjutkan. Setiap tes berisi garis.

Keluaran:
Cetak jumlah substring palindromik individu berkelanjutan dari jenis ini.

Keterbatasan:
1< = T<=10^5
1< = <=10^5


Contoh:
Masukan:
2
abaaa
geek


Keluaran:
5
4


Jawabannya


Pertanyaan 1
Jika Anda mengubah pilihan, Anda akan mendapatkan mobil dengan probabilitas 2/3. Jadi perubahan pilihan dalam situasi seperti itu meningkatkan kemungkinan menang.
Rincian lebih lanjut dijelaskan di Wikipedia . Anda juga bisa belajar kuliah ini. Selain itu ada simulasi online tugas Monty Hall.

Pertanyaan 2
Ambil 1 tablet dari kaleng 1, 2 tablet dari kaleng 2, 3 tablet dari kaleng 3, 4 tablet dari kaleng 4 dan 5 tablet dari kaleng 5. Masukkan semua 15 tablet ini dalam skala. Berat yang benar adalah 150 (15 * 10). Tapi salah satu kalengnya sudah terinfeksi pil. Jadi beratnya pasti akan kurang dari 150. Jika beratnya 149, maka Bank 1 memiliki tablet yang terinfeksi, karena hanya ada satu tablet yang terinfeksi. Jika beratnya 148, maka bisa 2, Jika beratnya 147, maka bisa 3, Jika 146, maka bisa 4, Jika 145, maka bisa 5.

Tugas 1
Solusi python
 for _ in range(int(input())): s = input() ls = [s[i:i+2] for i in range(0,len(s))] del ls[-1] ls = list(set(ls)) print(len(ls)) 

Tugas 2
 #include<iostream> using namespace std; int main() { int t; cin >> t; while(t--) { int n; cin >> n; int ar[n]; for(int i=0;i<n;i++) cin >> ar[i]; //************************************* //Finding Max Element of Array int max=-1; for(int i=0;i<n;i++) { if(ar[i]>max) { max=ar[i]; } } //*************************************** int size = max+1; int hash[size]={0}; for(int i=0;i<n;i++) hash[ar[i]]++; //*************************************** /*for(int i=0;i<size;i++) cout << hash[i] << " "; cout << endl;*/ for(int i=0;i<n;i++) { if(hash[ar[i]]>1) hash[ar[i]]=1; } int count = 1,max_count = 1; for(int i=0;i<size;i++) { if(hash[i]==1 && hash[i+1]==1) count++; else { if(count>max_count) max_count=count; count = 1; } } cout << max_count << endl; } } 

Tugas 3
 #include<bits/stdc++.h> using namespace std; bool ispalindrome(string s) { int i=0;int j=s.length()-1; while(i<j) { if(s[i]!=s[j]) return false; i++; j--; } return true; } int main() { //code int t; cin>>t; while(t--) { string s; cin>>s; vector<string>ans; for(int l=1;l<=s.length();l++) { for(int i=0;i<s.length()-l+1;i++) { if(ispalindrome(s.substr(i,l))) ans.push_back(s.substr(i,l)); } } sort(ans.begin(),ans.end()); ans.erase(unique(ans.begin(),ans.end()),ans.end()); cout<<ans.size()<<endl; } return 0; } 

Source: https://habr.com/ru/post/id479320/


All Articles