VOOZH about

URL: https://www.geeksforgeeks.org/dsa/maximum-length-prefix-one-string-occurs-subsequence-another/

⇱ Maximum length prefix of one string that occurs as subsequence in another - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

Maximum length prefix of one string that occurs as subsequence in another

Last Updated : 20 Feb, 2023

Given two strings s and t. The task is to find maximum length of some prefix of the string S which occur in string t as subsequence.

Examples : 

Input : s = "digger"
 t = "biggerdiagram"
Output : 3
digger
biggerdiagram
Prefix "dig" of s is longest subsequence in t.

Input : s = "geeksforgeeks"
 t = "agbcedfeitk"
Output : 4

A simple solutions is to consider all prefixes one by one and check if current prefix of s[] is a subsequence of t[] or not. Finally return length of the largest prefix.

An efficient solution is based on the fact that to find a prefix of length n, we must first find the prefix of length n - 1 and then look for s[n-1] in t. Similarly, to find a prefix of length n - 1, we must first find the prefix of length n - 2 and then look for s[n - 2] and so on. 
Thus, we keep a counter which stores the current length of prefix found. We initialize it with 0 and begin with the first letter of s and keep iterating over t to find the occurrence of the first letter. As soon as we encounter the first letter of s we update the counter and look for second letter. We keep updating the counter and looking for next letter, until either the string s is found or there are no more letters in t.

Below is the implementation of this approach: 


Output
3

Time complexity: O(n)

Space complexity: O(1)

Comment
Article Tags: