Loading...
Submission
# When Author Problem Language CPU Memory
19964 2024-05-16 21:27:02 AHAMMED_99 Min Substring C 1 ms 1600 kb Wrong Answer - 1
Test Cases
# CPU Memory Points
1 1 ms 1600 kb 0 Wrong Answer
2 0 ms 0 kb 0 Skipped
3 0 ms 0 kb 0 Skipped
4 0 ms 0 kb 0 Skipped
5 0 ms 0 kb 0 Skipped
6 0 ms 0 kb 0 Skipped
7 0 ms 0 kb 0 Skipped
8 0 ms 0 kb 0 Skipped
9 0 ms 0 kb 0 Skipped
10 0 ms 0 kb 0 Skipped
11 0 ms 0 kb 0 Skipped
12 0 ms 0 kb 0 Skipped
13 0 ms 0 kb 0 Skipped
14 0 ms 0 kb 0 Skipped
15 0 ms 0 kb 0 Skipped
16 0 ms 0 kb 0 Skipped
17 0 ms 0 kb 0 Skipped
18 0 ms 0 kb 0 Skipped
Source Code
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <limits.h>
  4.  
  5. #define MAX_CHARS 26 // Assuming lowercase English letters only
  6.  
  7. int min_substring_length(char *s) {
  8. int n = strlen(s);
  9. int freq[MAX_CHARS] = {0}; // Array to store frequency of characters
  10. int unique_count = 0;
  11. int min_length = INT_MAX;
  12. int left = 0;
  13.  
  14. // Count the number of unique characters
  15. for (int i = 0; i < n; i++) {
  16. if (freq[s[i] - 'a'] == 0)
  17. unique_count++;
  18. freq[s[i] - 'a']++;
  19. }
  20.  
  21. // Sliding window approach
  22. for (int right = 0; right < n; right++) {
  23. freq[s[right] - 'a']--;
  24.  
  25. while (unique_count == 0) {
  26. min_length = (right - left + 1) < min_length ? (right - left + 1) : min_length;
  27. freq[s[left] - 'a']++;
  28. if (freq[s[left] - 'a'] == 1)
  29. unique_count++;
  30. left++;
  31. }
  32. }
  33.  
  34. return min_length;
  35. }
  36.  
  37. int main() {
  38. char s[100001];
  39. scanf("%s", s);
  40. printf("%d\n", min_substring_length(s));
  41. return 0;
  42. }
  43.