Most asked easy problem

In partnership with

Welcome back!

This week’s problem has been asked by Uber, Amazon, Google and many others. And the best part - it’s an easy problem. Ready to give it a try?

Today we will cover:

  • Valid Parentheses problem

  • Redis vs Memcached

Read time: under 4 minutes

CODING CHALLENGE

Valid Parentheses

Given a string s containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.

An input string is valid if:

  1. Open brackets must be closed by the same type of brackets.

  2. Open brackets must be closed in the correct order.

  3. Every close bracket has a corresponding open bracket of the same type.

Example 1:

Input: s = "()"

Output: true

Example 2:

Input: s = "(]"

Output: false

Example 3:

Input: s = "([])"

Output: true

Solve the problem here before reading the solution.

PRESENTED BY WRITER

The fastest way to build AI apps

We’re excited to introduce Writer AI Studio, the fastest way to build AI apps, products, and features. Writer’s unique full-stack design makes it easy to prototype, deploy, and test AI apps – allowing developers to build with APIs, a drag-and-drop open-source Python framework, or a no-code builder, so you have flexibility to build the way you want.

Writer comes with a suite of top-ranking LLMs and has built-in RAG for easy integration with your data. Check it out if you’re looking to streamline how you build and integrate AI apps.

SOLUTION

To solve this problem, we can use a stack. We'll iterate through each character in the string. If we encounter an opening bracket, we'll push it onto the stack. If we encounter a closing bracket, we'll check if the stack is empty or if the top of the stack doesn't match the corresponding opening bracket. If either condition is true, we return false. If not, we pop the top element from the stack.

After processing all characters, we check if the stack is empty. If it is, all brackets were properly closed, and we return true. If not, there are unmatched opening brackets, so we return false.

The time complexity of this solution is O(n), where n is the length of the input string. We iterate through each character once, and stack operations (push and pop) are O(1).

SYSTEM DESIGN

Redis vs Memcached

Redis and Memcached are the two most popular tools used for caching. Both Redis and Memcached store data in memory, which makes them incredibly fast. 

Memcached is the simpler option. It's a straightforward key-value store that uses consistent hashing to distribute data across multiple nodes. This means requests for specific data always go to the same cache server, making it efficient and predictable. It supports multi-threading and uses a "least recently used" (LRU) policy to remove old data when space runs low.

Redis takes things further by offering more features. Beyond basic key-value storage, it supports complex data structures like hash maps, sorted sets, and even geo indexes - all running in memory. Redis also includes features like write-ahead logging for atomic operations and single-threaded execution for transaction support.

When should you choose one over the other? Redis is generally more developer-friendly with its built-in features and managed approach. It's great for solo developers or teams that want a powerful caching solution without much configuration. Memcached, while requiring more setup, offers more flexibility for complex caching scenarios. It's particularly useful when you need custom replication strategies or special locking mechanisms.

Redis

Memcached

Data Structures

Multiple (hash maps, sorted sets, geo indexes)

Simple key-value only

Threading

Single-threaded

Multi-threaded

Transaction Support

Built-in

Manual implementation needed

Replication

Single leader only

Flexible (can be customized)

Best For

Teams wanting ready-to-use features

Teams needing maximum flexibility

DEVELOPER TOOLS

Ditch the complexity—Pinata’s File API gets you uploading in minutes

Pinata’s File API is designed to make your life as a developer easier. Say goodbye to time-consuming setups and configuration hassles. With just a few lines of code, you can add file uploads and retrieval to your app, freeing up time to focus on building features that matter. Whether you're building large-scale projects or a weekend app, Pinata provides fast, secure, and scalable file management.

NEWS

This Week in the Tech World

Dropbox Cuts 528 Jobs: Dropbox lays off 20% of its workforce, affecting 528 employees, as CEO Drew Houston cites softening demand and organizational complexity. This follows a previous 16% cut in April 2023.

Google's AI Code Progress: Google reveals AI now writes over 25% of its code. CEO Sundar Pichai highlights AI's role in driving cloud revenue up 35% to $11.4B and improving search functionality.

Nvidia Expands in India: Nvidia partners with Reliance Industries and launches a Hindi language model. CEO Jensen Huang announces major computing infrastructure expansion, predicting India will "export AI" instead of just software.

Nadella Takes Pay Cut Over Security: Microsoft CEO Satya Nadella requested a $5.5M reduction in his cash incentive after security breaches, though his total compensation still rose 63% to $79.1M. The cut reflects his "personal accountability" for cybersecurity issues.

Oracle Launches AI Health Records: Oracle unveils new AI-powered electronic health record system, its biggest healthcare update since acquiring Cerner. The system uses voice commands and AI to help doctors spend less time on paperwork and more with patients.

Delta Sues CrowdStrike: Delta Air Lines sues CrowdStrike over a July IT outage that cost $550 million and caused 7,000 flight cancellations. CrowdStrike countersues, claiming Delta's "own negligence" caused the extended disruption.

HELP US

👋 Hi there! We are on a mission to provide as much value as possible for free. If you want this newsletter to remain free, please help us grow by referring your friends:

📌 Share your referral link on LinkedIn or directly with your friends.
📌 Check your referrals status here.

BONUS

Just for laughs 😏

YOUR FEEDBACK

What did you think of this week's email?

Your feedback helps us create better emails for you!

Login or Subscribe to participate in polls.

Until next time, take care! 🚀

Cheers,