警钟撅烂
查看原帖
警钟撅烂
1213524
C_plus_plus_12345楼主2024/11/27 22:41

题目中每次访问字符串区间将下标视作从 11 开始而非从 00 开始!

思路:

#include<bits/stdc++.h>
using namespace std;
string s, t;
int l1, r1, l2, r2;
int main()
{
	getline(cin, s);
	getline(cin, t);
	cin.ignore();
  /**
   *getline()会读入换行符并将其保留在缓冲区里面,
   *那么遇到cin之后会立刻认为输入结束。
   */
	int q;
	cin >> q;
	for(int i = 0; i < q; i++)
	{
		cin >> l1 >> r1 >> l2 >> r2;
		string x = s.substr(l1 - 1, r1 - l1 + 1);
		string y = t.substr(l2 - 1, r2 - l2 + 1);
		if(x < y)
		{
			cout<<"第一个字符串区间更小。\n";
		}
		else if(x > y)
		{
			cout<<"第二个字符串区间更小。\n";
		}
		else
		{
			cout<<"两个字符串区间相等。\n";
		}
	}
	return 0;
}
2024/11/27 22:41
加载中...