宇宙总统

在这里插入图片描述在这里插入图片描述

输入

5
98765
12365
87954
1022356
985678

输出

4
1022356

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
	int n, num;
	char a[201], max[201] = " ";
	cin >> n;
	for(int i = 1; i <= n; i++)
	{
		cin >> a;
		if(strlen(max) < strlen(a) || strlen(max) == strlen(a) && strcmp(max, a) < 0)
		{
			strcpy(max, a);
			num = i;
		}
	}
	cout << num << endl;
	cout << max;
	return 0;
}

字符串操作:strcpy;strcmp
均包含于头文件中。
由于数字极大,故使用字符串。

### 关于"C++ 宇宙总统"问题的实现 以下是针对“宇宙总统”问题的一个完整的C++代码实现,该程序能够处理输入数据并找到满足条件的结果。 #### 题目描述 给定一组字符串形式的数据,找出其中长度最长且字典序最大的字符串及其索引位置。如果存在多个相同结果,则返回第一个符合条件的位置。 #### 代码实现 ```cpp #include <iostream> #include <string> using namespace std; int main() { int n, maxLength = -1; string inputStr, longestStr = ""; cin >> n; // 输入字符串数量 for (int i = 1; i <= n; ++i) { cin >> inputStr; // 输入每一个字符串 if ((inputStr.length() > longestStr.length()) || (inputStr.length() == longestStr.length() && inputStr > longestStr)) { longestStr = inputStr; // 更新最长字符串 maxLength = i; // 记录当前索引 } } cout << maxLength << endl; // 输出索引 cout << longestStr << endl; // 输出对应的字符串 return 0; } ``` 此代码实现了题目需求的功能,并通过比较字符串长度以及字典顺序来确定最终结果[^3]。 #### 解析 - **变量初始化**: `maxLength` 初始化为 `-1` 表示尚未发现有效值;`longestStr` 初始为空串。 - **循环读取**: 使用 `for` 循环逐一读入字符串,并判断其是否应成为新的最长字符串。 - **更新逻辑**: 当前字符串要么更长,要么同样长度但字典序更大时才更新记录。 - **输出结果**: 最终打印出索引和对应字符串。 以上方法可以高效解决此类问题,时间复杂度主要取决于输入规模 \(O(n)\),空间消耗较小[^3]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值