Facebook coming after YouTube?
Microsoft Interview Question, Facebook vs. YouTube, an awesome AWS song and the more!
Hello fellow nerds!
Hope y’all are having a fantastic day. Here’s your interview problem and industry news for the day.
Daily Interview Problem
You are given a string as input. Write a function to check if the letters in the string can be rearranged to form a palindrome (or if the input is already a palindrome). You can ignore spaces in the string.
Input - “car race”
Output - True (the letters can be rearranged to form “racecar”)
Industry News
Facebook Watch Tops 1.25 Billion Monthly Active Users - Facebook Watch is the social giant’s two-year-old video streaming platform and it is now serving more than 1.25 billion users each month. This is a credible challenge to YouTube, which currently has north of 2 billion logged-in visitors per month. However, it’s still unclear how long people are staying on the Watch platform. Facebook counts everyone who has streamed as little as 1 minute of video as an active user.
Looking for a musical that goes through AWS’s 168 services in 2 minutes? Look no further, Forrest Brazeal has you covered! Check out his hilarious musical here. I know it’s not “industry news”, but this is too awesome not to link.
The Chinese government emphasizes right to approve tech deals as TikTok Sale Looms - China has emphasized it’s right to approve or block the sale of technology companies abroad, which confirms that the government will play a critical role in the sale of TikTok’s U.S. operations to Microsoft and Oracle. Beijing has also added several artificial intelligence features to a list of export-restricted technologies, giving them the right to block a deal by targeting features such as TikTok’s recommendation algorithm.
Previous Solution
As a refresher, here’s the last question
You’re given two strings s
and p
. Both strings will not be empty.
Find all the start indices of p
’s anagrams in s
. The strings consist of lowercase English letters only and the length of both strings s
and p
will be less than 10,000.
Example 1:
Input: s: "cbaebabacd" p: "abc"
Output: [0, 6]
Explanation:
The substring with start index = 0 is "cba", which is an anagram of "abc".
The substring with start index = 6 is "bac", which is an anagram of "abc".
Example 2:
Input: s: "abab" p: "ab"
Output: [0, 1, 2]
Explanation:
The substring with start index = 0 is "ab", which is an anagram of "ab".
The substring with start index = 1 is "ba", which is an anagram of "ab".
The substring with start index = 2 is "ab", which is an anagram of "ab".
Solution
This question uses the Sliding Window technique.
We create a “sliding window” of all the characters in p
.
Then, we iterate through s
.
If we come across a character that is NOT in our sliding window, then we add it in to the window.
If we come across a character that is in our sliding window, then we delete it from the window.
If our sliding window is empty, then that means we’ve come across an anagram of
p
ins
and we can add it to our list of indices.
The time complexity is O(p + s)
and the space complexity is O(p)
.
You can view a REPL with the solution and test cases here.