Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Задача 1.
- Николай иска да разбере колко и какви символи се съдържат в даден низ. За низ - s, определете броя на големи букви, малки букви, числа и други символи.
- Пример:
- s = Hello, Pravets 2022!
- На конзолата трябва да се принтира:
- Digits count: 4
- Lowercase letters count: 10
- Uppercase letters count: 2
- Other symbols count: 4
- Входни параметри:
- • s - String
- Ограничения:
- • 1 ≤ s ≤ 10000 (дължина на низа)
- • Всеки символ s[i] ∈ ascii
- Изходен формат:
- Digits count: {number of chars}
- Lowercase letters count: {number of chars}
- Uppercase letters count: {number of chars}
- Other symbols count: {number of chars}
- Задача 2
- Иван е изобретил машина на времето и иска да я изпробва като пътува във времето до България в специфичен ден от годината, в периода от 1700 до 2700 година.
- От 1700г. до 1915г., България официално използва Юлианския кландар, а от 1917г. - Грегорианския календар. Преминаването от Юлиянския към Грегориянския календар е било през 1916г., когато денят след 31 март е бил 14 април. Това означава, че през 1916г., 31 март е бил 91-я ден, а 14 април е бил 92-я ден от годината (ВАЖНО - 1916г е високосна).
- И в двата календара, Февруари е единствения месец с променливи дни (29 дни по време на високосна година, и 28 през всички останали). В Юлианския календар високосни години са всички, които се делят на 4, а в Грегорианския високосни са всички, за които важи следното:
- • Делят се на 400
- • Делят се на 4, но не се делят на 100.
- За година - x, и ден от годината - y, намерете датата на деня в посочената година според официалния календар на България през посочената година. Изкарайте датата на конзолата във формат dd.mm.yyyy, където dd е двуцифрен ден, mm е двуцифрен месец, yyyy е x.
- Пример:
- Ако x = 1996, y = 177, 1996 е високосна година (тъй като се дели на 4, но не се дели на 100 и е през времето на Григорианския календар) датата, която трябва да изкараме на конзолата е: 25.06.1996.
- Входни параметри:
- • year (x): integer
- • day (y): integer
- Ограничения:
- • 1700 ≥ x ≥ 2700
- • 1 ≥ y ≥ 365 (366 при високосна година).
- Изходен формат:
- Изкарайте пълната дата за посочения ден и година във формата - dd.mm.yyyy където dd е двуцифрен ден, mm е двуцифрен месец, yyyy е x.
- Задача 3 ООП:
- Калоян е собственик на хотел и има нужда от система за управление. Направате система с класове и йерархия, за да улесните работата на мениджъра.
- Подберете най-добрите типове базирано на имената на полетата (Например за поле name, използвайте String, за number - int).
- Имплементирайте всички класове в един клас Solution.
- Структурата трябва да изглежда така:
- abstract Room (
- roomNumber,
- pricePerNight
- )
- Suite : Room (
- constructor() {
- // When creating, initialize pricePerNight to 50
- }
- )
- Apartment : Room (
- constructor(roomNumber) {
- // When creating, check if roomNumber > 10 and if it is, set the pricePerNight = 150 (VIP apartments). If not, set the pricePerNight to 100
- }
- )
- abstract HotelPersonnel (
- workerId,
- name,
- abstract greet method which takes a tourist and prints a greeting
- )
- Cleaner : HotelPersonnel (
- list of cleaned rooms,
- greet method which prints message: “Enjoy your stay,, {tourist name}”
- clean method which takes a room an adds it to the cleaned rooms list
- )
- Receptionist : HotelPersonnel (
- list of taken rooms,
- greet method which prints message: “Welcome to the hotel, {tourist name}”
- assignRoom method, which takes a Tourist and a Room object.
- )
- Tourist (
- name,
- room,
- stayDays,
- isAllInclusive
- constructor(name, stayDays, isAllInclusive)
- relax method, which checks if the tourist is staying with all inclusive. If they are, the method prints “Feels good to make fat stacks coding”, If they are not, just print a happy face :)
- )
- Задача 4 БОНУС:
- Шерлок счита един низ за валиден, ако всички символи в него се появяват еднакъв на брой пъти. Също така е валиден, ако може да се премахне 1 символ от 1 място и останалите символи се появяват еднакъв на брой пъти. По даден низ s, определете дали е валиден. Ако е изпишете YES на конзолата, в противен счучай - NO.
- Примери:
- s = abc
- Това е валиден низ, защото символите се появяват еднакъв на брой пъти = { a: 1, b:1, c:1 }.
- s = abcc
- Това е валиден низ, защото можем да премахнем един символ 'c' и остават по един символ от всички останали.
- s = abccc
- Този низ не е валиден, защото можем да премахнем само един символ 'c', което ще ни остави с { a: 1, b:1, c:2 }.
- Входни параметри:
- • s - String
- Ограничения:
- • 1 ≤ s ≤ 10000 (дължина на низа)
- • Всеки символ s[i] ∈ ascii[a - z]
- Изходен формат:
- Ако низа е валиден - YES, в противен случай – NO
Advertisement
Add Comment
Please, Sign In to add comment