2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Päiväkodissa on kaatunut tynnyrilineaarinen rakenne , koripallo voidaan sijoittaa vain kauhan oikealle puolelle, mutta koripallo voidaan ottaa pois kauhan vasemmalle tai oikealle puolelle. Jokaisella koripallolla on erillinen numero se ulos kauhan vasemmalta puolelta.
Esimerkiksi, jos opettaja laittaa viisi koripalloa numeroilla 1, 2, 3, 4 ja 5 järjestykseen, lapset voivat ottaa numerot "1, 2, 3, 4, 5" tai "3, 1, 2, Koripalloja numeroitu "4,5", mutta koripalloja numerolla "5,1,3,2,4" ei voi ottaa pois. Niistä järjestysnumeron "3,1,2,4,5" ulosottoskenaario on: laita numerot 1,2,3 jatkuvasti -> ota numero 3 oikealta -> poista numero 1 vasen -> ota numero 2 vasemmalta -> Laita nro 4 sisään -> Ota nro 4 vasemmalta -> Laita nro 5 -> Ota nro 5 vasemmalta yksinkertaisuus, käytämme L edustamaan koripalloa, joka on otettu pois vasemmalta, ja R edustamaan koripalloa oikealta. Koripallojen järjestys tällä hetkellä Haettu järjestys on " RLLLL ".
Ensimmäisen rivin numerot toimivat koripallon numeroina, jotka opettaja asettaa peräkkäin;
Toisen rivin numeroita käytetään koripallon numeroina, jotka tarkistetaan, jotta voidaan nähdä, voidaanko ne ottaa pois syöttöjärjestyksessä;
Niiden joukossa koripallon numerot on erotettu pilkuilla.
Tulosta jokaisen koripallon poistojärjestys, jos se todella on mahdollista, tulostettaessa vasemman ja oikean toiminnon mukaan.
erityistä huomiota kiinnitettävät kohteet:
1. 1<=koripallon numero, koripallojen lukumäärä<=200;
2. Koripallon numerot eivät toistu;
3. Tulostustulosten LR on oltava isoilla kirjaimilla;
tulla sisään
4,5,6,7,0,1,2
6,4,0,1,2,5,7
ulostulo
RLRRRLL
Huomautus: Koripallon poistojärjestys on "oikea, vasen, oikea, oikea, oikea, vasen, vasen"
tulla sisään
4,5,6,7,0,1,2
6,0,5,1,2,4,7
Lähtö:
EI
Kuvaus: Vastaavan sarjan koripalloa ei voi ottaa pois
tulla sisään
1,2,3,4
1,2,3,5
ulostulo
EI
Selitys: Koripalloa ei ole numeroitu 5, joten vastaavia numeroituja tietoja ei voida hakea.
C++ lähdekoodi:
- #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;
- }