Numéro 28: Formation informatique - problèmes et défis actuels des grandes entreprises

Salut
Aujourd'hui dans notre rubrique tâches avec des interviews sur LinkedIn.

image

Si vous les décidez tous à la volée et envisagez sérieusement de rejoindre LinkedIn, nous vous recommandons d'écouter la sortie de notre podcast.

Certes, il s'agit de produits, mais nous y demandons en détail Dmitry Berdnikov, directeur de la stratégie et des opérations de LinkedIn, à toutes les étapes des entretiens avec l'entreprise.

Écoutez où c'est pratique ↓
Podcasts Apple
Podcasts Google
Yandex.Music
Ou sur la page podcast

Et d'ailleurs, les réponses aux problèmes précédents ont déjà été publiées ! Vérifiez avec eux.

Des questions


1. Problème de Monty Hall
Supposons que vous participiez à un jeu télévisé et que vous ayez le choix entre trois portes: derrière une porte se trouve une voiture; derrière les autres, des chèvres. Vous choisissez une porte, dites non. 1, et l'hôte, qui sait ce qui se cache derrière les portes, ouvre une autre porte, dites non. 3, qui a une chèvre. Il vous dit ensuite: «Voulez-vous choisir la porte non. 2? "
Est-il à votre avantage de changer de choix?

image
La traduction
Supposons que vous participiez à un jeu télévisé et que vous ayez le choix entre trois portes: une porte de voiture; pour les autres chèvres. Vous choisissez la porte, disons, n ° 1, et le présentateur, qui sait ce qu'il y a derrière les portes, ouvre une autre porte, disons, n ° 3, dans laquelle il y a une chèvre. Puis il vous dit: "Voulez-vous choisir la porte numéro 2?"
Est-il rentable pour vous de changer votre choix?

2. Trouvez le pot avec des pilules contaminées
Vous avez 5 pots de pilules. Chaque pilule pèse 10 grammes, à l'exception des pilules contaminées contenues dans un pot, où chaque pilule pèse 9 grammes. Compte tenu d'une échelle, comment pourriez-vous savoir dans quel pot les pilules contaminées étaient présentes en une seule mesure?

La traduction
Vous avez 5 boîtes de comprimés. Chaque comprimé pèse 10 grammes, à l'exception des comprimés infectés contenus dans un pot, où chaque comprimé pèse 9 grammes. Vous avez des balances, comment pourriez-vous déterminer dans quelle banque se trouvaient les pilules infectées, en une seule pesée?

Les tâches


1. Sous-chaînes distinctes
Soit une chaîne S composée de caractères alphabétiques majuscules. Renvoie le nombre de sous-chaînes différentes de taille 2 qui apparaissent dans S en tant que sous-chaînes contiguës.

Entrée: La première ligne contient «T» indiquant le nombre de cas de test. Suit la description des cas de test. Les T lignes suivantes contiennent la chaîne S.

Sortie: affiche le nombre de sous-chaînes différentes de taille 2 en S.

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


Exemple:
Entrée:
2
ABCAB
XYZ


Sortie:
3
2


Explication: Pour "ABCAB", les trois sous-chaînes distinctes de taille 2 sont "AB", "BC" et "CA". Pour "XYZ", les deux sous-chaînes distinctes de taille 2 sont "XY" et "YZ".

La traduction
Étant donné la chaîne S, composée de caractères alphabétiques majuscules. Renvoie le nombre de sous-chaînes différentes de taille 2 qui apparaissent en S comme sous-chaînes adjacentes.

Entrée: la première ligne contient «T», indiquant le nombre de tests. Ce qui suit est une description des tests. Les lignes T suivantes contiennent la chaîne S.

Sortie: Imprime un seul nombre - le nombre de sous-chaînes différentes de taille 2 dans la chaîne S.

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


Un exemple:
Entrée:
2
ABCAB
XYZ


Sortie:
3
2


Explication: Pour «ABCAB», les trois sous-chaînes différentes de taille 2 sont «AB», «BC» et «CA». Pour «XYZ», deux sous-chaînes distinctes de taille 2 sont «XY» et «YZ».

2. Sous-séquence consécutive la plus longue
Étant donné un tableau arr [] d'entiers positifs. Trouvez la longueur de la sous-séquence la plus longue de sorte que les éléments de la sous-séquence soient des entiers consécutifs, les nombres consécutifs peuvent être dans n'importe quel ordre.

Entrée:
La première ligne d'entrée contient T, nombre de cas de test. Première ligne de ligne, chaque scénario de test contient un seul entier N.
La ligne suivante contient N tableau d'entiers.

Sortie:
Imprimez la sortie de chaque scénario de test sur une ligne séparée.

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


Exemple:
Entrée:
2
7
2 6 1 9 4 5 3
7
1 9 3 10 4 20 2


Sortie:
6
4


Explication:
Cas d'essai 1: Les nombres consécutifs sont ici 1, 2, 3, 4, 5, 6. Ces 6 nombres forment la sous-séquence consécutive la plus longue.

Testcase2: 1, 2, 3, 4 est la sous-séquence consécutive la plus longue.

La traduction
Un tableau d'entiers positifs arr [] est donné. Trouvez la longueur de la sous-séquence la plus longue de sorte que les éléments de la sous-séquence soient des entiers consécutifs, les nombres consécutifs peuvent être dans n'importe quel ordre .

Entrée:
La première ligne d'entrée contient T, le nombre de cas de test. La première ligne de chaque test contient un entier N.
La ligne suivante contient N tableaux entiers.

Sortie:
Imprimez la sortie de chaque test sur une ligne distincte.

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


Un exemple:
Entrée:
2
7
2 6 1 9 4 5 3
7
1 9 3 10 4 20 2


Sortie:
6
4


Explication
Test 1: Les nombres séquentiels ici sont 1, 2, 3, 4, 5, 6. Ces 6 nombres forment la sous-requête séquentielle la plus longue.

Test 2: 1, 2, 3, 4 - La sous-séquence séquentielle la plus longue.

3. Sous-chaînes palindromiques distinctes
Étant donné une chaîne de caractères ASCII en minuscules, recherchez toutes ses sous-chaînes palindromiques continues distinctes.

Entrée:
La première ligne d'entrée contient un entier T indiquant le nombre de cas de test. Ensuite, les cas de test T suivent. Chaque scénario de test contient une chaîne.

Sortie:
Imprimez le nombre de sous-chaînes palindromiques continues distinctes de celui-ci.

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


Exemple:
Entrée:
2
abaaa
geek


Sortie:
5
4

La traduction
Étant donné une chaîne de caractères ASCII minuscules, recherchez toutes ses sous-chaînes palindromes continues individuelles.

Entrée:
La première ligne d'entrée contient un entier T, indiquant le nombre de tests. Ensuite, les tests suivent. Chaque test contient une ligne.

Sortie:
Imprimez le nombre de sous-chaînes palindromiques continues individuelles de ce type.

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


Un exemple:
Entrée:
2
abaaa
geek


Sortie:
5
4


Les réponses


Question 1
Si vous changez votre choix, vous obtiendrez une voiture avec une probabilité de 2/3. Ainsi, un changement de choix dans une telle situation augmente la probabilité de gagner.
Plus de détails sont décrits sur Wikipedia . Vous pouvez également étudier cette conférence . De plus, il existe une simulation en ligne de la tâche Monty Hall.

Question 2
Prenez 1 comprimé d'une boîte 1, 2 comprimés d'une boîte 2, 3 comprimés d'une boîte 3, 4 comprimés d'une boîte 4 et 5 comprimés d'une boîte 5. Mettez tous ces 15 comprimés sur une balance. Le poids correct est de 150 (15 * 10). Mais l'une des boîtes a infecté des pilules. Le poids sera donc certainement inférieur à 150. Si le poids est de 149, alors la banque 1 contient des comprimés infectés, car il n'y a qu'un seul comprimé infecté. Si le poids est de 148, alors 2, si le poids est de 147, alors 3, si 146, puis 4, si 145, alors 5.

Tâche 1
Solution 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)) 

Tâche 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; } } 

Tâche 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/fr479320/


All Articles