Siyahının döndürülməsi
Çox asan
Zaman limiti 1 saniyə-dir
Yaddaş məhdudiyyəti 64 meqabayt
Zadana tam ədədlər massividir. Bu ədədlərdən Bağlı Siyahı yaradın.
k qeyri-mənfi tam ədəd olmaqla, Siyahını sağa k mövqeyə döndərən RotateRight
metodunu həyata keçirin.
Məsələn, əgər List = 1 → 2 → 3 → 4 → 5 → NULL
və k = 2 olarsa, döndərmədən sonra List = 4 → 5 → 1 → 2 → 3 → NULL
olacaq.
Aşağıdakı interfeysə uyğun kod yazın:
class Node { public: int data; Node *next; Node() : next(NULL) {}; Node(int data, Node *next = NULL) : data(data), next(next) {}; }; class List { public: Node *head, *tail; List() : head(NULL), tail(NULL) {}; void addToTail(int val); // Bağlı Siyahının sonuna val ədədini əlavə edin void RotateRight(int k); // Bağlı Siyahını sağa k mövqeyə döndərin void Print(void); // Bağlı Siyahının elementlərini çap edin };
class Node: def __init__(self, data: int): self.data: int = data self.next: [Node | None] = None class List: def __init__(self): self.head: [Node | None] = None self.tail: [Node | None] = None def addToTail(self, val: int) -> None: """Bağlı Siyahının sonuna val ədədini əlavə edin""" pass def RotateRight(self, k: int) -> None: """Bağlı Siyahını sağa k mövqeyə döndərin""" pass def Print(self) -> None: """Bağlı Siyahının elementlərini çap edin""" pass
Lazım olduqda əlavə metodlar yarada (istifadə edə) bilərsiniz.
Giriş məlumatları
Birinci sətir n (1 ≤ n ≤ 100) ədədini ehtiva edir. İkinci sətir n tam ədəd ehtiva edir. Növbəti hər bir sətir k (0 ≤ k ≤ 10^9
) ədədini ehtiva edir.
Çıxış məlumatları
Hər bir k dəyəri üçün Bağlı Siyahının sağa k mövqeyə döndərilməsindən sonra onun elementlərini ayrı-ayrı sətirlərdə çap edin. Siyahının elementlərini çap etmək üçün Print
metodundan istifadə edin.
Nümunələr
Giriş #1
Çıxış #1
Təqdimatlar 1K
Qəbul dərəcəsi 38%