字符环

【描述】7ut100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

有两个由字符构成的环。请写一个程序,计算这两个字符环上最长连续公共字符串的长度。例如,字符串“ABCEFAGADEGKABUVKLM”的首尾连在一起,构成一个环;字符串“MADJKLUVKL”的首尾连在一起,构成一个另一个环;“UVKLMA”是这两个环的一个连续公共字符串。7ut100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【输入】7ut100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

一行,包含两个字符串,分别对应一个字符环。这两个字符串之间用单个空格分开。字符串长度不超过255,且不包含空格等空白符。7ut100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【输出】7ut100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

输出一个整数,表示这两个字符环上最长公共字符串的长度。7ut100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【样例输入】7ut100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

ABCEFAGADEGKABUVKLM MADJKLUVKL

【样例输出】7ut100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

6

【参考程序】7ut100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

C++版本7ut100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 7ut100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

  1. #include <iostream> 
  2. #include <string> 
  3. #include <algorithm> 
  4.  
  5. using namespace std; 
  6.  
  7. int main() 
  8.     int x, y, len, len1, len2, limit, ans = 0; 
  9.     string s1, s2; 
  10.     cin >> s1 >> s2; 
  11.     len1 = s1.size(); 
  12.     len2 = s2.size(); 
  13.     limit = min(len1, len2);//最短字符串的长度 
  14.     s1 += s1; // 造环 
  15.     s2 += s2; // 造环 
  16.     for (int i = 0; i < len1; i++) 
  17.     { 
  18.         for (int j = 0; j < len2; j++) 
  19.         { 
  20.             len = 0; 
  21.             x = i; 
  22.             y = j; 
  23.             while (s1[x++] == s2[y++] && len < limit)//不能超过段长 
  24.             { 
  25.                 len++; 
  26.             } 
  27.             if (len > ans) 
  28.             { 
  29.                 ans = len; 
  30.             } 
  31.         } 
  32.     } 
  33.     cout << ans << endl; 
  34.     return 0; 

关 键 词

字符环

相关教程

提示声明

  • 免责声明:本站资源均来自网络或者用户投稿,仅供用于学习和交流:如有侵权联系删除!

猜你喜欢