Skip to main content

Command Palette

Search for a command to run...

Solving Leetcode Interviews in Seconds with AI: Find the Encrypted String

Updated
2 min read

Introduction

In this blog post, we will explore how to solve the LeetCode problem "3210" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like Chatmagic, we can generate solutions quickly and efficiently - helping you pass the interviews and get the job offer without having to study for months.

Problem Statement

You are given a string s and an integer k. Encrypt the string using the following algorithm: For each character c in s, replace c with the kth character after c in the string (in a cyclic manner). Return the encrypted string. Example 1: Input: s = "dart", k = 3 Output: "tdar" Explanation: For i = 0, the 3rd character after 'd' is 't'. For i = 1, the 3rd character after 'a' is 'd'. For i = 2, the 3rd character after 'r' is 'a'. For i = 3, the 3rd character after 't' is 'r'. Example 2: Input: s = "aaa", k = 1 Output: "aaa" Explanation: As all the characters are the same, the encrypted string will also be the same. Constraints: 1 <= s.length <= 100 1 <= k <= 104 s consists only of lowercase English letters.

Explanation

Here's the approach to solve this string encryption problem:

  • Cyclic Shift: The core idea is to cyclically shift each character by k positions within the lowercase alphabet. This means 'a' shifted by 1 becomes 'b', 'z' shifted by 1 becomes 'a', and so on.
  • Modulo Operator: The modulo operator (%) is crucial for achieving the cyclic behavior. ((char_code - ord('a') + k) % 26) + ord('a') efficiently calculates the new character code.
  • String Building: We iterate through the input string and construct the encrypted string character by character.

  • Runtime & Storage Complexity: O(n) runtime, where n is the length of the string s, and O(n) storage complexity to store the resulting encrypted string.

Code

    def encrypt_string(s: str, k: int) -> str:
    """
    Encrypts a string by cyclically shifting each character by k positions.

    Args:
        s: The input string consisting of lowercase English letters.
        k: The shift value.

    Returns:
        The encrypted string.
    """
    encrypted_string = ""
    for char in s:
        char_code = ord(char)
        encrypted_char_code = ((char_code - ord('a') + k) % 26) + ord('a')
        encrypted_string += chr(encrypted_char_code)
    return encrypted_string

More from this blog

C

Chatmagic blog

2894 posts