解题思路:

注意事项:

参考代码:

#include"bits/stdc++.h"
using namespace std;
// 定义一个字符串数组,用于存储输入的字符串
string s[20000];
int main(){
    // 初始化变量n为1,用于记录输入的字符串数量
    int n=1;
    // 循环读取输入的字符串,直到遇到EOF
    while(cin>>s[n++]);
    // 调整n的值,使其表示实际输入的字符串数量
    n-=2;
    // 对字符串数组进行排序
    sort(s+1,s+n+1);
    // 初始化kkk为第一个字符串的长度
    int kkk=s[1].size();
    // 遍历排序后的字符串数组,计算总长度
    for(int i=2;i<=n;i++){
        int j=0;
        // 比较当前字符串与前一个字符串,找到第一个不同的字符位置
        while(s[i][j]==s[i-1][j]&&j<s[i-1].size()){
            j++;
        }
        // 累加当前字符串从不同字符开始的部分长度
        kkk+=s[i].size()-j;
    }
    // 输出最终计算的总长度,加1是因为有1个root
    cout<<kkk+1;
    return 0;
}


点赞(0)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论