< Ace Coding /> ๐Ÿš€
338 subscribers
54 photos
2 videos
95 files
66 links
Welcome to Ace Coding! Join us for tips, tutorials, and insights on coding and software engineering. Stay updated with the latest content and elevate your programming skills!Let's learn and grow together in the world of software engineering!
Download Telegram
Stacks, Queues and Monotonicity.pdf
1.5 MB
โœ… A2SV Community Education Resources.๐Ÿ“—

๐ŸŸข Very good resources for A2SV interview prep.


๐ŸŒŸ๐Ÿš€ @AceCoding Presents! ๐Ÿš€๐ŸŒŸ
๐Ÿ‘1
๐Ÿ“ข Important Update for A2SV G6 In person Education Cohort!

If you've received an email from A2SV, congratulations! ๐ŸŽ‰ Youโ€™ve been shortlisted for an interview for the A2SV G6 Cohort!

๐Ÿ—“ Interviews Begin: on Tuesday
๐Ÿ“Œ Focus Areas: Make sure to prepare thoroughly on the topics mentioned in the email.

If you havenโ€™t checked your email yet, go check it now and start your preparation! ๐Ÿ“จ

๐Ÿš€ @AceCoding Presents! ๐Ÿš€
๐Ÿง  Python Quiz: Predict the Output

arr = [[0]] * 5  
print(arr)
arr[0][0] = 1
print(arr)


What will the output be? You can choose your answer below.

@AceCoding Presents!
โœ… Explanation for the above question

ยฉ๏ธ credit for ChatGPT ๐Ÿค
โœ… Sliding window, Two pointers, and Hash Table problem

๐ŸŸก 567. Permutation in String

https://leetcode.com/problems/permutation-in-string/submissions/1482104785/

๐Ÿš€ @AceCoding Presents! ๐Ÿš€
โœ… Dynamic Sliding window and hashmap / hashset problem.

This problem has a pattern that repeats a lot : worth revising

๐ŸŸก 3. Longest Substring Without Repeating Characters

https://leetcode.com/problems/longest-substring-without-repeating-characters/description/

๐Ÿš€ @AceCoding Presents! ๐Ÿš€
๐Ÿ‘1
Substrings that begin and end with the same letter

You are given a 0-indexed string s consisting of only lowercase English letters. Return the number of substrings in s that begin and end with the same character.

A substring is a contiguous non-empty sequence of characters within a string.


Example 1:

Input: s = "abcba"
Output: 7
Explanation:
The substrings of length 1 that start and end with the same letter are: "a", "b", "c", "b", and "a".
The substring of length 3 that starts and ends with the same letter is: "bcb".
The substring of length 5 that starts and ends with the same letter is: "abcba" .

Example 2:

Input: s = "abacad"
Output: 9   112131
Explanation:
The substrings of length 1 that start and end with the same letter are: "a", "b", "a", "c", "a", and "d" = 6.
The substrings of length 3 that start and end with the same letter are: "aba" and "aca" = 2.
The substring of length 5 that starts and ends with the same letter is: "abaca" = 1.

Example 3:

Input: s = "a"
Output: 1
Explanation:
The substring of length 1 that starts and ends with the same letter is: "a".


Constraints:

1 <= s.length <= 105
s consists only of lowercase English letters.
Question: Maximum Sum Score of an Array

You are given a 0-indexed integer array nums of length n. The sum score of nums at an index i (where 0 <= i < n) is defined as the maximum of:

โ€ข The sum of the first i + 1 elements of nums.

โ€ข The sum of the last n - i elements of nums.

Your task is to return the maximum sum score of nums at any index.

โ–ŽExamples:

1. Input: nums = [4, 3, -2, 5]
Output: 10
Explanation:

โ€ข At index 0: max(4, 4 + 3 - 2 + 5) = max(4, 10) = 10.

โ€ข At index 1: max(4 + 3, 3 - 2 + 5) = max(7, 6) = 7.

โ€ข At index 2: max(4 + 3 - 2, -2 + 5) = max(5, 3) = 5.

โ€ข At index 3: max(4 + 3 - 2 + 5, 5) = max(10, 5) = 10.

โ€ข The maximum sum score of nums is 10.

2. Input: nums = [-3, -5]
Output: -3
Explanation:

โ€ข At index 0: max(-3, -3 - 5) = max(-3, -8) = -3.

โ€ข At index 1: max(-3 - 5, -5) = max(-8, -5) = -5.

โ€ข The maximum sum score of nums is -3.

โ–ŽChallenge:

Write a function maximumSumScore(nums) that takes an integer array as input and returns the maximum sum score.
/*
You are given a string s consisting only of lowercase English letters.
We call a substring special if it contains no character which has occurred at least twice (in other words, it does not contain a repeating character).
Your task is to count the number of special substrings.
For example, in the string "pop", the substring "po" is a special substring, however, "pop" is not special (since 'p' has occurred twice).
Return the number of special substrings.
A substring is a contiguous sequence of characters within a string. For example, "abc" is a substring of "abcd", but "acd" is not.

Example 1:
Input: s = "abcd"


Output: 10
Explanation: Since each character occurs once, every substring is a special substring.
We have 4 substrings of length one, 3 of length two, 2 of length three, and 1 substring of length four. So overall there are 4 + 3 + 2 + 1 = 10 special substrings.

Example 2:
Input: s = "ooo"
Output: 3
Explanation: Any substring with a length of at least two contains a repeating character. So we have to count the number of substrings of length one, which is 3.

Example 3:
Input: s = "abab"
Output: 7
Explanation: Special substrings are as follows (sorted by their start positions):
Special substrings of length 1: "a", "b", "a", "b"
Special substrings of length 2: "ab", "ba", "ab"
And it can be shown that there are no special substrings with a length of at least three. So the answer would be 4 + 3 = 7.
l r
a b c d a

Constraints:
1 <= s.length <= 10^5
s consists of lowercase English letters
< Ace Coding /> ๐Ÿš€
/* You are given a string s consisting only of lowercase English letters. We call a substring special if it contains no character which has occurred at least twice (in other words, it does not contain a repeating character). Your task is to count the numberโ€ฆ
This one took me much longer time not gonna lie.๐Ÿ˜ฎโ€๐Ÿ’จ

โœ… Solution : this is as efficient as it can get
python 
def countSpaceialSubString(s):
seen = set()
l = 0
count = 0

for r in range(len(s)):
if s[r] in seen:
while s[l] != s[r]:
seen.remove(s[l])
l += 1
l += 1

seen.add(s[r])
count += r - l + 1

return count


print(countSpaceialSubString("abcd"))
print(countSpaceialSubString("ooo"))
print(countSpaceialSubString("abab"))
print(countSpaceialSubString("abcabc"))
Question: Can You Make This String a Palindrome?

A palindrome is a string that reads the same forwards and backwards. Given a string, determine if it's possible to rearrange the characters to form a palindrome.

Examples:

1. Input: "civic"

   โ€ข Output: True

   โ€ข Explanation: The string is already a palindrome.

2. Input: "ivicc"

   โ€ข Output: True

   โ€ข Explanation: Rearranging the characters can form the palindrome "civic".

3. Input: "hello"

   โ€ข Output: False

   โ€ข Explanation: No rearrangement can form a palindrome.

4. Input: "aabbcc"

   โ€ข Output: True

   โ€ข Explanation: Rearranging the characters can form the palindrome "abcba".

5. Input: "racecar"

   โ€ข Output: True

   โ€ข Explanation: The string is already a palindrome.

Challenge:
Write a function that takes a string as input and returns True if the string can be rearranged to form a palindrome, and False otherwise.
Question Description
Given a string s and an integer k, return the number of substrings in s of length k with no repeated characters.
Example 1:
Input: s = "unonleetcode", k = 5
Output: 2
Explanation: There are 6 substrings they are: 'havef','avefu','vefun','efuno','etcod','tcode'.

Example 2:
Input: s = "home", k = 5
Output: 0
Explanation: Notice k can be larger than the length of s. In this case, it is not possible to find any substring.

Example 3:
Input: s = "havefunonleetcode", k = 5
Output: 6
Explanation: There are 6 substrings they are: 'havef','avefu','vefun','efuno','etcod','tcode'.


โœ… Solution: as I have told you this pattern repeats a lot so you got this
def subStringK(s, k):
seen = set()
count = 0
l = 0

for r in range(len(s)):
if s[r] in seen:
while s[l] != s[r]:
seen.remove(s[l])
l += 1
l += 1

if r - l + 1 == k:
count += 1
seen.remove(s[l])
l += 1

seen.add(s[r])
return count


print(subStringK("unonleetcode", 5))
print(subStringK("havefunonleetcode", 5))
print(subStringK("aaabbaaa", 2))
print(subStringK("aaabbaaa", 100))
โœ… Hello everyone, today was my interview date, and I was asked the following question: At first, I thought I could use the two pointers technique to solve it, but then I realized that that would make the algorithm inefficient. Then I noticed that the number of 1s will be the length of the subarray with grouped 1s. This changed my approach to a fixed sliding window, and then the rest was easy. My interviewer was very nice and guided me the whole way.

'''
Given a binary array data, return the minimum number of swaps required to group all 1โ€™s
present in the array together in any place in the array.


Example 1:

Input: data = [1,0,1,0,1]
Output: 1
Explanation: There are 3 ways to group all 1's together:
[1,1,1,0,0] using 1 swap.
[0,1,1,1,0] using 2 swaps.
[0,0,1,1,1] using 1 swap.
The minimum is 1.

Example 2:
Input: data = [0,0,0,1,0]
Output: 0
Explanation: Since there is only one 1 in the array, no swaps are needed.

Example 3:
Input: data = [1,0,1,0,1,0,0,1,1,0,1] count_ones = 6 count_zeros = 3 curr_zeros = 3 min of count_zeros and curr_zeros
l
r
time comp = O(n)
space comp = O(1)

Output: 3
Explanation: One possible solution that uses 3 swaps is [0,0,0,0,0,1,1,1,1,1,1].


Constraints:

1 <= data.length <= 10**5
data[i] is either 0 or 1.
'''

"""
1. count 1's store one count_ones
2. assign count_zeros = inf curr_zeros = 0
3. l, r = 0
4. check for a valid window
5. update curr_zeros
6. take the min of the count_zeros and curr_zeros
7. check if the values at the indexes are zeros if so decrement curr_zeros
8. update pointers
9. return count_zeros
"""
# my code
def minNumberOfSwaps(arr):
count_ones = arr.count(1)
count_zeros, curr_zeros = float('inf'), 0
l = 0

for r in range(len(arr)):
if arr[r] == 0:
curr_zeros += 1
# check for a valid window
if r - l + 1 == count_ones:
count_zeros = min(count_zeros, curr_zeros)
if arr[l] == 0:
curr_zeros -= 1
l += 1

return count_zeros if count_zeros != float('inf') else 0


"""
1= 6
curr_zeros = 3
count_zeros = 3
1,0,1,0,1,0,0,1,1,0,1
l
r
"""


#A2SV #a2sv #a2sv2024
A2SV a2sv 2024 In person

๐Ÿš€ @AceCoding Presents! ๐Ÿš€
๐Ÿ‘9
"""
You are given a string s consisting only of the letters 'a' and 'b', and an integer k.
What is the minimum number of characters you need to change to obtain a substring of length โ‰ฅ k where all characters are the same?

Example 1:
s = โ€œaabaabaaโ€, k = 3
Output: 1
Explanation: s can be transformed to โ€œaaaaabaaโ€

Example 2:
s = โ€œbbabbabaโ€, k = 8
Output: 3
Explanation: s can be transformed to โ€œbbbbbbbbโ€

Constraints:
1 <= s.length <= 10^5
1 <= k <= s.length

aaab, k = 4
aaaa
abs(3 - 1) = 2
"""
๐Ÿ‘3