All posts by Soner Gönül

Hackerrank “30 Days of Code” Çözümleri – Day 1: Data Types

Hackerrank’in 30 Days of Code içerisinde bulunan “Day 1: Data Types” sorusunun açıklaması ve çözümü. Bu soruda sizin konsol‘dan aldığınız int, double ve string tipinde değişkenlerini “+” operatörü kullanarak konsola yazdırmanız isteniyor.

► Hackerrank 30 Days of Code Çözümleri – Day 1: Data Types: https://www.hackerrank.com/challenges/30-data-types/problem

► Problem açıklaması:

Objective

Today, we’re discussing data types. Check out the Tutorial tab for learning materials and an instructional video!

Task

Complete the code in the editor below. The variables , , and are already declared and initialized for you. You must:

1. Declare 3 variables: one of type int, one of type double, and one of type String.

2. Read 3 lines of input from stdin (according to the sequence given in the Input Format section below) and initialize your 3 variables.

3. Use the + operator to perform the following operations:

– Print the sum of i plus your int variable on a new line.

– Print the sum of d plus your double variable to a scale of one decimal place on a new line.

– Concatenate s with the string you read as input and print the result on a new line.

Note: If you are using a language that doesn’t support using + for string concatenation (e.g.: C), you can just print one variable immediately following the other on the same line. The string provided in your editor must be printed first, immediately followed by the string you read as input.

Input Format

The first line contains an integer that you must sum with i.

The second line contains a double that you must sum with d.

The third line contains a string that you must concatenate with s.

Output Format

Print the sum of both integers on the first line, the sum of both doubles (scaled to 1 decimal place) on the second line, and then the two concatenated strings on the third line.

Sample Input

12

4.0

is the best place to learn and practice coding!

Sample Output

16

8.0

HackerRank is the best place to learn and practice coding!

Explanation

When we sum the integers 4 and 12, we get the integer 16.

When we sum the floating-point numbers 4.0 and 4.0, we get 8.0.

When we concatenate HackerRank with is the best place to learn and practice coding!, we get HackerRank is the best place to learn and practice coding!.

You will not pass this challenge if you attempt to assign the Sample Case values to your variables instead of following the instructions above and reading input from stdin.

Hackerrank “30 Days of Code” Çözümleri – Day 0: Hello, World.

Hackerrank‘in 30 Days of Code içerisinde bulunan “Day 0: Hello, World” sorusunun açıklaması ve çözümü. Bu soruda sizin console’dan alınan bir string’i yine console’a yeni bir satırda yazdırmanız isteniyor.

► Hackerrank 30 Days of Code Çözümleri – Day 0: Hello, World: https://www.hackerrank.com/challenges/30-hello-world/problem

► Problem açıklaması:

Objective

In this challenge, we review some basic concepts that will get you started with this series. You will need to use the same (or similar) syntax to read input and write output in challenges throughout HackerRank. Check out the Tutorial tab for learning materials and an instructional video!

Task

To complete this challenge, you must save a line of input from stdin to a variable, print Hello, World. on a single line, and finally print the value of your variable on a second line.

You’ve got this!

Note: The instructions are Java-based, but we support submissions in many popular languages. You can switch languages using the drop-down menu above your editor, and the inputString variable may be written differently depending on the best-practice conventions of your submission language.

Input Format

A single line of text denoting inputString (the variable whose contents must be printed).

Output Format

Print Hello, World. on the first line, and the contents of inputString on the second line.

Sample Input

Welcome to 30 Days of Code!

Sample Output

Hello, World.

Welcome to 30 Days of Code!

Explanation

On the first line, we print the string literal Hello, World.. On the second line, we print the contents of the inputString variable which, for this sample case, happens to be Welcome to 30 Days of Code!. If you do not print the variable’s contents to stdout, you will not pass the hidden test case.

LeetCode Çözümleri – 1185. Day of the Week [Zeller’s congruence]

LeetCode içerisinde bulunan “Day of the Week” sorusunun açıklaması ve çözümü. Bu soruda sizi verilen gün, ay ve yıl bilgilerine ait tarihin haftanın hangi güne denk geldiğini bulmanız isteniyor.

► LeetCode 1185. Day of the Week: https://leetcode.com/problems/day-of-the-week/

► Zeller’s congruence https://en.wikipedia.org/wiki/Zeller%27s_congruence

► Problem açıklaması:

Given a date, return the corresponding day of the week for that date.

The input is given as three integers representing the day, month and year respectively.

Return the answer as one of the following values {“Sunday”, “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”}.

Example 1: Input: day = 31, month = 8, year = 2019 Output: “Saturday”

Example 2: Input: day = 18, month = 7, year = 1999 Output: “Sunday”

Example 3: Input: day = 15, month = 8, year = 1993 Output: “Sunday”

Constraints: The given dates are valid dates between the years 1971 and 2100.

LeetCode Çözümleri – 796. Rotate String

LeetCode içerisinde bulunan “Rotate String” sorusunun açıklaması ve çözümü. Bu soruda sizi verilen iki string‘ten, ilk string herhangi bir sayıda rotasyon ile ikinci string’e dönüşüp dönüşemeyeceği soruluyor.

► LeetCode 796. Rotate String: https://leetcode.com/problems/rotate-string/

► Problem açıklaması:

We are given two strings, s and goal.

A shift on s consists of taking string s and moving the leftmost character to the rightmost position. For example, if s = ‘abcde’, then it will be ‘bcdea’ after one shift on s. Return true if and only if s can become goal after some number of shifts on s.

Example 1:

Input: s = ‘abcde’, goal = ‘cdeab’

Output: true

Example 2:

Input: s = ‘abcde’, goal = ‘abced’

Output: false

Note:

s and goal will have length at most 100.

LeetCode Çözümleri – 1544. Make The String Great

LeetCode içerisinde bulunan “Make The String Great” sorusunun açıklaması ve çözümü. Bu soruda sizi verilen bir string‘i, “iyi” bir string yapmanız gerekiyor. Bu da string’i, birbirini takip eden aynı karakterlerden – fakat biri küçük diğer büyük harf olacak şekilde – arındırmanız demek.

► LeetCode 1544. Make The String Great: https://leetcode.com/problems/make-the-string-great/

► Problem açıklaması:

Given a string s of lower and upper case English letters.

A good string is a string which doesn’t have two adjacent characters s[i] and s[i + 1] where:

0 <= i <= s.length – 2

s[i] is a lower-case letter and s[i + 1] is the same letter but in upper-case or vice-versa.

To make the string good, you can choose two adjacent characters that make the string bad and remove them. You can keep doing this until the string becomes good.

Return the string after making it good. The answer is guaranteed to be unique under the given constraints.

Notice that an empty string is also good.

Example 1:

Input: s = “leEeetcode”

Output: “leetcode”

Explanation: In the first step, either you choose i = 1 or i = 2, both will result “leEeetcode” to be reduced to “leetcode”.

Example 2:

Input: s = “abBAcC”

Output: “”

Explanation: We have many possible scenarios, and all lead to the same answer. For example:

“abBAcC” — “aAcC” — “cC” — “”

“abBAcC” — “abBA” — “aA” — “”

Example 3:

Input: s = “s”

Output: “s”

LeetCode Çözümleri – 1137. N-th Tribonacci Number

LeetCode içerisinde bulunan “N-th Tribonacci Number” sorusunun açıklaması ve çözümü. Bu soruda Tribonacci serisinin n. elemanını bulmanız isteniyor.

► LeetCode 1137. N-th Tribonacci Number: https://leetcode.com/problems/n-th-tribonacci-number/

► Problem açıklaması:

The Tribonacci sequence Tn is defined as follows:

T0 = 0, T1 = 1, T2 = 1, and Tn+3 = Tn + Tn+1 + Tn+2 for n >= 0.

Given n, return the value of Tn.

Example 1:

Input: n = 4

Output: 4

Explanation:

T_3 = 0 + 1 + 1 = 2

T_4 = 1 + 1 + 2 = 4

Example 2:

Input: n = 25

Output: 1389537

Constraints:

0 <= n <= 37

The answer is guaranteed to fit within a 32-bit integer, ie. answer lessEqual 2^31 – 1.

LeetCode Çözümleri – 459. Repeated Substring Pattern

LeetCode içerisinde bulunan “Repeated Substring Pattern” sorusunun açıklaması ve çözümü. Bu soruda size verilen string‘in belirli bir string’in kendini tekrar etmesi ile oluşup oluşmadığı soruluyor.

► LeetCode 459. Repeated Substring Pattern: https://leetcode.com/problems/repeated-substring-pattern/

► Problem açıklaması:

Given a string s, check if it can be constructed by taking a substring of it and appending multiple copies of the substring together.

Example 1:

Input: s = “abab”

Output: true

Explanation: It is the substring “ab” twice.

Example 2:

Input: s = “aba”

Output: false

Example 3:

Input: s = “abcabcabcabc”

Output: true

Explanation: It is the substring “abc” four times or the substring “abcabc” twice.

Constraints:

1 <= s.length <= 10^4

s consists of lowercase English letters.

HackerRank Çözümleri – Chocolate Feast

HackerRank içerisinde bulunan “Chocolate Feast” sorusunun açıklaması ve çözümü. Bu soruda size verilen bir çikolata dükkanı için, belirli bir sayıda çikolata kabı getirdiğinizde belirli bir sayıda çikolata barı alabileceğiniz, belirli bir sayıda çikolata ile maksimum promosyonlar ile birlikte kaç adet çikolata yiyebileceğinizi hesaplamanız isteniyor.

► HackerRank – Chocolate Feast: https://www.hackerrank.com/challenges/chocolate-feast/problem

► Problem açıklaması:

Little Bobby loves chocolate. He frequently goes to his favorite 5&10 store, Penny Auntie, to buy them. They are having a promotion at Penny Auntie. If Bobby saves enough wrappers, he can turn them in for a free chocolate.

Example

n = 15

c = 3

m = 2

He has 15 to spend, bars cost 3, and he can turn in 2 wrappers to receive another bar. Initially, he buys 5 bars and has 5 wrappers after eating them. He turns in 4 of them, leaving him with 1, for 2 more bars. After eating those two, he has 3 wrappers, turns in 2 leaving him with 1 wrapper and his new bar. Once he eats that one, he has 2 wrappers and turns them in for another bar. After eating that one, he only has 1 wrapper, and his feast ends. Overall, he has eaten 5 + 2 + 1 + 1 = 9 bars.

Function Description

Complete the chocolateFeast function in the editor below.

chocolateFeast has the following parameter(s):

int n: Bobby’s initial amount of money

int c: the cost of a chocolate bar

int m: the number of wrappers he can turn in for a free bar

Returns

int: the number of chocolates Bobby can eat after taking full advantage of the promotion

Note: Little Bobby will always turn in his wrappers if he has enough to get a free chocolate.

Sample Input

STDIN Function

—– ——–

3 t = 3 (test cases)

10 2 5 n = 10, c = 2, m = 5 (first test case)

12 4 4 n = 12, c = 4, m = 4 (second test case)

6 2 2 n = 6, c = 2, m = 2 (third test case)

Sample Output

6

3

5

LeetCode Çözümleri – 1154. Day of the Year

LeetCode içerisinde bulunan “Day of the Year” sorusunun açıklaması ve çözümü. Bu soruda size verilen string‘in gösterdiği tarihin yılın kaçıncı günü olduğunu bulmanız isteniyor.

► LeetCode 1154. Day of the Year: https://leetcode.com/problems/day-of-the-year/

► Problem açıklaması: Given a string date representing a Gregorian calendar date formatted as YYYY-MM-DD, return the day number of the year.

Example 1:

Input: date = “2019-01-09”

Output: 9

Explanation: Given date is the 9th day of the year in 2019.

Example 2: Input: date = “2019-02-10” Output: 41

Example 3: Input: date = “2003-03-01” Output: 60

Example 4: Input: date = “2004-03-01” Output: 61

Constraints:

date.length == 10

date[4] == date[7] == ‘-‘, and all other date[i]’s are digits

date represents a calendar date between Jan 1st, 1900 and Dec 31, 2019.

LeetCode Çözümleri – 485. Max Consecutive Ones

LeetCode içerisinde bulunan “Max Consecutive Ones” sorusunun açıklaması ve çözümü. Bu soruda size verilen bir tam sayı dizisi içerisinde (1 ve 0’lardan oluşan) yan yana olan 1’lerin en uzun hali soruluyor.

► LeetCode 228. 485. Max Consecutive Ones: https://leetcode.com/problems/max-consecutive-ones/

► Problem açıklaması:

Given a binary array nums, return the maximum number of consecutive 1’s in the array.

Example 1:

Input: nums = [1,1,0,1,1,1]

Output: 3

Explanation: The first two digits or the last three digits are consecutive 1s. The maximum number of consecutive 1s is 3.

Example 2:

Input: nums = [1,0,1,1,0,1]

Output: 2

Constraints:

1 <= nums.length <= 10^5

nums[i] is either 0 or 1.