#include <iostream>#include <string>using namespace std;int main() { string S, S1, S2; // 输入三个字符串 cin >> S >> S1 >> S2; int maxDistance = -1; // 初始化最大跨距为-1 size_t posS1 = S.find(S1); // 查找S1在S中的位置 size_t posS2 = S.find(S2); // 查找S2在S中的位置 while (posS1 != string::npos && posS2 != string::npos) { // 当S1和S2都在S中出现时进行循环 if (posS1 < posS2) { // 如果S1在S2的左边 size_t endPosS1 = posS1 + S1.length(); // S1的右边界点位置 size_t startPostS2 = posS2; // S2的左边界点位置 if (endPosS1 < startPostS2) { // 如果S1的右边界点在S2的左边界点的左侧 int distance = startPostS2 - endPosS1 - 1; // 计算跨距 if (distance > maxDistance) { // 更新最大跨距 maxDistance = distance; } } } posS1 = S.find(S1, posS1 + 1); // 继续查找下一个S1的位置 posS2 = S.find(S2, posS2 + 1); // 继续查找下一个S2的位置 } cout << maxDistance << endl; // 输出最大跨距 return 0;}
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。 |