τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Υπάρχει αναποδογυρισμένο βαρέλι στο νηπιαγωγείο Είναι αγραμμική δομή , η μπάλα του μπάσκετ μπορεί να τοποθετηθεί μόνο στη δεξιά πλευρά του κάδου, αλλά η μπάλα του μπάσκετ μπορεί να αφαιρεθεί στην αριστερή ή τη δεξιά πλευρά του κάδου. Κάθε μπάλα του μπάσκετ έχει ξεχωριστό αριθμό έξω από την αριστερή πλευρά του κάδου.
Για παράδειγμα, εάν ο δάσκαλος βάλει πέντε μπάλες μπάσκετ με τη σειρά 1, 2, 3, 4 και 5, τότε τα παιδιά μπορούν να βγάλουν τους αριθμούς "1,2,3,4,5" ή "3,1,2, Οι μπάλες του μπάσκετ με αριθμό "4,5", αλλά οι μπάλες με αριθμό "5,1,3,2,4" δεν μπορούν να αφαιρεθούν. Μεταξύ αυτών, το σενάριο λήψης του αύξοντα αριθμού "3,1,2,4,5" είναι: βάλτε τους αριθμούς 1,2,3 συνεχώς -> βγάλτε τον αριθμό 3 από τα δεξιά -> βγάλτε τον αριθμό 1 από το αριστερό -> βγάλτε τον αριθμό 2 από τα αριστερά -> Βγάλτε το Νο. 4 από τα αριστερά -> Βγάλτε το Νο. 5 -> Βγάλτε το Νο. 5 από τα αριστερά απλότητα, χρησιμοποιούμε το L για να αναπαραστήσουμε το μπάσκετ που βγήκε από τα αριστερά και το R για να αναπαραστήσουμε το μπάσκετ που βγήκε από τα δεξιά.
Οι αριθμοί στην πρώτη σειρά χρησιμεύουν ως οι αριθμοί μπάσκετ που βάζει ο δάσκαλος με τη σειρά.
Οι αριθμοί στη δεύτερη γραμμή χρησιμοποιούνται ως οι αριθμοί του μπάσκετ που πρέπει να ελεγχθούν για να δούμε αν μπορούν να αφαιρεθούν με τη σειρά που τοποθετήθηκαν.
Μεταξύ αυτών, οι αριθμοί του μπάσκετ χωρίζονται με κόμμα.
Για την ακολουθία αφαίρεσης κάθε μπάλας, εάν όντως μπορεί να επιτευχθεί, εκτυπώστε τη σειρά αφαίρεσης σύμφωνα με τις λειτουργίες αριστερά και δεξιά, διαφορετικά, εκτυπώστε "ΟΧΙ".
είδη ιδιαίτερης προσοχής:
1. 1<=ο αριθμός του μπάσκετ, ο αριθμός των μπάσκετ<=200;
2. Οι αριθμοί στο μπάσκετ δεν επαναλαμβάνονται.
3. Το LR στα αποτελέσματα εξόδου πρέπει να είναι με κεφαλαία.
εισαγω
4,5,6,7,0,1,2
6,4,0,1,2,5,7
παραγωγή
RLRRRLL
Σημείωση: Η σειρά εξαγωγής του μπάσκετ είναι "δεξιά, αριστερά, δεξιά, δεξιά, δεξιά, αριστερά, αριστερά"
εισαγω
4,5,6,7,0,1,2
6,0,5,1,2,4,7
Παραγωγή:
ΟΧΙ
Περιγραφή: Το μπάσκετ της αντίστοιχης σειράς δεν μπορεί να αφαιρεθεί
εισαγω
1,2,3,4
1,2,3,5
παραγωγή
ΟΧΙ
Επεξήγηση: Δεν υπάρχει μπάσκετ με αριθμό 5, επομένως δεν μπορούν να ανακτηθούν τα αντίστοιχα αριθμημένα δεδομένα.
Πηγαίος κώδικας C++:
- #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;
- }