# Solving Leetcode Interviews in Seconds with AI: Append Characters to String to Make Subsequence


	# Introduction
	In this blog post, we will explore how to solve the LeetCode problem "2486" using AI. LeetCode is a popular platform for preparing for coding interviews, and with the help of AI tools like [Chatmagic](https://www.chatmagic.app), 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 two strings s and t consisting of only lowercase English letters. Return the minimum number of characters that need to be appended to the end of s so that t becomes a subsequence of s. A subsequence is a string that can be derived from another string by deleting some or no characters without changing the order of the remaining characters.   Example 1:  Input: s = "coaching", t = "coding" Output: 4 Explanation: Append the characters "ding" to the end of s so that s = "coachingding". Now, t is a subsequence of s ("coachingding"). It can be shown that appending any 3 characters to the end of s will never make t a subsequence.  Example 2:  Input: s = "abcde", t = "a" Output: 0 Explanation: t is already a subsequence of s ("abcde").  Example 3:  Input: s = "z", t = "abcde" Output: 5 Explanation: Append the characters "abcde" to the end of s so that s = "zabcde". Now, t is a subsequence of s ("zabcde"). It can be shown that appending any 4 characters to the end of s will never make t a subsequence.    Constraints:  1 <= s.length, t.length <= 105 s and t consist only of lowercase English letters.  

	# Explanation
	Here's the breakdown of the problem and the Python solution:

*   **Approach:**
    *   Iterate through string `t`. For each character in `t`, find its earliest occurrence in `s` starting from the last matched index.
    *   If a character in `t` is not found in the remaining part of `s`, it means we need to append it to `s`.
    *   The number of appended characters is the answer.

*   **Complexity:**
    *   Runtime: O(m + n), where m is the length of s and n is the length of t.
    *   Storage: O(1)

	
	# Code
	```python
	def append_characters(s: str, t: str) -> int:
    """
    Given two strings s and t consisting of only lowercase English letters.
    Return the minimum number of characters that need to be appended to the end of s so that t becomes a subsequence of s.
    A subsequence is a string that can be derived from another string by deleting some or no characters without changing the order of the remaining characters.

    Example 1:
    Input: s = "coaching", t = "coding"
    Output: 4
    Explanation: Append the characters "ding" to the end of s so that s = "coachingding". Now, t is a subsequence of s ("coachingding").
    It can be shown that appending any 3 characters to the end of s will never make t a subsequence.

    Example 2:
    Input: s = "abcde", t = "a"
    Output: 0
    Explanation: t is already a subsequence of s ("abcde").

    Example 3:
    Input: s = "z", t = "abcde"
    Output: 5
    Explanation: Append the characters "abcde" to the end of s so that s = "zabcde". Now, t is a subsequence of s ("zabcde").
    It can be shown that appending any 4 characters to the end of s will never make t a subsequence.

    Constraints:
    1 <= s.length, t.length <= 105
    s and t consist only of lowercase English letters.
    """
    s_idx = 0
    t_idx = 0
    appended_count = 0

    while t_idx < len(t):
        found = False
        while s_idx < len(s):
            if s[s_idx] == t[t_idx]:
                found = True
                s_idx += 1
                t_idx += 1
                break
            s_idx += 1

        if not found:
            appended_count += 1
            t_idx += 1
            s_idx = s_idx  # do not increment s_idx, it needs to remain at the original unmatched place
    return appended_count
	```
			
