2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Es gibt ein umgestürztes Fass im Kindergartenlineare Struktur , der Basketball kann nur auf der rechten Seite des Eimers platziert werden, aber der Basketball kann auf der linken oder rechten Seite des Eimers herausgenommen werden. Jeder Basketball hat eine eigene Nummer. Der Lehrer kann jeweils einen oder mehrere Basketbälle auf der linken oder rechten Seite des Eimers herausnehmen es von der linken Seite des Eimers heraus.
Wenn der Lehrer beispielsweise fünf Basketbälle mit den Nummern 1, 2, 3, 4 und 5 in eine Reihe bringt, können die Kinder die Nummern „1, 2, 3, 4, 5“ oder „3, 1, 2, Die Basketbälle mit der fortlaufenden Nummer „4,5“ können nicht herausgenommen werden. Darunter ist das Take-Out-Szenario der Sequenznummer „3,1,2,4,5“: Zahlen 1,2,3 kontinuierlich eingeben -> Nummer 3 von rechts herausnehmen -> Nummer 1 von rechts herausnehmen links -> Nr. 2 von links herausnehmen -> Nr. 4 hineinstecken -> Nr. 4 von links herausnehmen -> Nr. 5 hineinstecken -> Nr. 5 von links herausnehmen Der Einfachheit halber verwenden wir L, um den von links entnommenen Basketball darzustellen, und R, um den von rechts entnommenen Basketball darzustellen. Die Reihenfolge der Basketbälle zu diesem Zeitpunkt ist die abgerufene Sequenz „ RLLLL “;
Die Zahlen in der ersten Reihe dienen als Basketballzahlen, die der Lehrer der Reihe nach anordnet;
Die Zahlen in der zweiten Zeile werden als Basketballzahlen verwendet, die überprüft werden müssen, um festzustellen, ob sie in der Reihenfolge, in der sie eingegeben wurden, herausgenommen werden können.
Darunter sind die Basketballzahlen durch Kommas getrennt.
Wenn Sie die Entfernungsreihenfolge jedes Basketballs erhalten möchten, drucken Sie diese bitte entsprechend den linken und rechten Operationen aus. Andernfalls geben Sie „NEIN“ ein.
Besondere Aufmerksamkeitspunkte:
1. 1<=die Nummer des Basketballs, die Anzahl der Basketbälle<=200;
2. Die Zahlen auf dem Basketball wiederholen sich nicht;
3. LR in den Ausgabeergebnissen muss in Großbuchstaben angegeben werden;
eingeben
4,5,6,7,0,1,2
6,4,0,1,2,5,7
Ausgabe
RLRRLL
Hinweis: Die Reihenfolge beim Herausnehmen des Basketballs ist „rechts, links, rechts, rechts, rechts, links, links“.
eingeben
4,5,6,7,0,1,2
6,0,5,1,2,4,7
Ausgabe:
NEIN
Beschreibung: Der Basketball der entsprechenden Sequenz kann nicht herausgenommen werden
eingeben
1,2,3,4
1,2,3,5
Ausgabe
NEIN
Erläuterung: Es gibt keinen Basketball mit der Nummer 5, daher können die entsprechenden nummerierten Daten nicht abgerufen werden.
C++-Quellcode:
- #include <iostream>
- #include <sstream>
- #include <queue>
- #include <string>
- #include <vector>
-
- using namespace std;
-
- int main() {
- ios::sync_with_stdio(false);
- cin.tie(nullptr);
-
- queue<int> ball, get;
- deque<int> list;
- string input;
- getline(cin, input); // 获取第一行数据,篮球的放入顺序
- stringstream ss(input);
- string temp;
-
- while (getline(ss, temp, ',')) {
- ball.push(stoi(temp));
- }
-
- getline(cin, input); // 获取第二行数据,篮球的取出顺序
- ss.clear();
- ss.str(input);
- while (getline(ss, temp, ',')) {
- get.push(stoi(temp));
- }
-
- int ballNum = 0; // 统计输入的字符串中篮球编号的个数
- for (int i = 0; i < input.size(); i++)
- {
- if (input[i] != ',') {
- ballNum++;
- }
- }
-
- string direction; // 对篮球的取出顺序进行记录
- while (!get.empty()) {
- if (list.empty() && !ball.empty()) {
- list.push_back(ball.front());
- ball.pop();
- }
- if (list.empty()) {
- break;
- }
- int tempL = list.front(), tempR = list.back();
- int temp = get.front();
- if (temp == tempL) {
- get.pop();
- list.pop_front();
- direction = direction + 'L';
- }
- else if (temp == tempR) {
- get.pop();
- list.pop_back();
- direction = direction + 'R';
- }
- else {
- if (ball.empty()) {
- break;
- }
- list.push_back(ball.front());
- ball.pop();
- }
- }
-
- // 输出取出顺序
- if (ballNum == direction.size()) {
- cout << direction << endl;
- }
- else {
- cout << "NO" << endl;
- }
-
- system("pause");
- return 0;
- }