社区讨论

求问为何段错?

B4088[CSP-X2020 山东] 最大回文数参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mcnh8a0i
此快照首次捕获于
2025/07/03 22:24
8 个月前
此快照最后确认于
2025/11/04 06:46
4 个月前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
string a0[10005];
long long a1[10005];
int i_1 = 1;
int n;

string sliceString(const string& str, size_t start, size_t end)
{
    size_t len = min(end, str.size()) - start;
    return str.substr(start, len);
}

void ifhuiwen()
{
    for (int m=1; m<=n; m++)
    {
        string s = a0[m];
    	int k = s.size() / 2;
        int f = 1;
    	for (int i=0, j=s.size()-1; i<=k, j>=s.size()-k; i++, j--)
    	{
    		if (!(s[i] == s[j]))
            {
                f = 0;
                break;
            }
    	}
        if (f == 1)
        {
        	string str1 = sliceString(s, 1, k+1);
            i_1 = m;
        	a1[i_1] = stoll(str1);
        }
    }
}
 
int main()
{
	cin >> n;
	long long max_1 = -10;
	int maxn;
	for (int i=1; i<=n; i++)
		cin >> a0[i];
    ifhuiwen();
	for (int i=1; i<=n; i++)
	{
		if (max_1 < a1[i])
		{
			max_1 = a1[i];
			maxn = i;
		}
	}
	cout << a0[maxn];
	return 0;
}

代码很臃肿了,将就看一下吧

回复

2 条回复,欢迎继续交流。

正在加载回复...