C Programming: Length of longest common subsequence of two strings
Write a C program to calculate the length of the longest common subsequence of two given strings. The strings consist of alphabetical characters..
Sample Data:
("abcdkiou", "cabsdf") -> 3
("pqrjad", "qr") -> 2
Sample Solution:
C Code:
#include <stdio.h>
#include <string.h>
// Macro to find maximum of two numbers
#define max(x,y) ((x) > (y) ? (x) : (y))
int result[200][200]; // 2D array to store the length of the longest common subsequence
char str1[200], str2[200]; // Strings to hold user input
int main() {
printf("Input the first string: ");
scanf("%s", str1);
printf("\nInput the second string: ");
scanf("%s", str2);
int n = strlen(str1); // Length of the first string
int m = strlen(str2); // Length of the second string
// Loop to find the length of the longest common subsequence of the given strings
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
if (str1[i - 1] == str2[j - 1]) {
// If characters at current positions are the same, increment the count
result[i][j] = result[i - 1][j - 1] + 1;
} else {
// If characters are different, choose the maximum length subsequence from previous results
result[i][j] = max(result[i - 1][j], result[i][j - 1]);
}
}
}
// Display the length of the longest common subsequence of the given strings
printf("\nLength of longest common subsequence of said strings: %d\n", result[n][m]);
return 0;
}
Sample Output:
Input the first string: Input the second string: Length of longest common subsequence of said strings: 3
Flowchart :
C Programming Code Editor:
Improve this sample solution and post your code through Disqus.
Previous C Programming Exercise: Replace every lowercase letter with the same uppercase.
Next C Programming Exercise: C Date Time Exercises Home
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics