借鉴题解(求关)(原创)
  • 板块学术版
  • 楼主_Liuhaohong_
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/12/20 12:56
  • 上次更新2024/12/20 13:36:20
查看原帖
借鉴题解(求关)(原创)
1456797
_Liuhaohong_楼主2024/12/20 12:56

从今日开始我会不定时发一些题解,给大家借鉴。

第一天:

题目:简写单词 最近情报人员得到了一些经过加密的文章,每个单词都很长。破译人员想到先把单词化简一下,方法是把每个单词尽量取短些的前缀,但所取的前缀不能是其它单词的前缀。 这个任务现在就交给你来完成。 解释:“字符串s1是s2的前缀”是说把字符串s2的后面去掉某些,只保留与s1相同长度时,s2就与s1完全相同。如:"abc"是"abcaade"和"abc"的前缀,但不是"ababc"的前缀。

来自:NOIP冲刺2010试题三。

思路: 用字符串连接,之后枚举判断。

#include<bits/stdc++.h>
using namespace std;
string s[100];
int n,f;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++) cin>>s[i];
    for(int i=1;i<=n;i++){
        for(int j=1;j<=s[i].size();j++){
            string a;
            f=0;
            for(int jf=0;jf<j;jf++){
                a+=s[i][jf];    
            } 
            for(int ir=1;ir<=n;ir++) {
            	f=0;
            	if(i!=ir){
            		string h;                    
                    for(int jtk=0;jtk<j;jtk++){
                        h+=s[ir][jtk];
                    } 
            		if(h==a){
						f=1;
						break;
					}   
            	}
        	}
        	if(f==0){
        		cout<<a<<endl;
        		break;
        	}
        }
	}
    return 0;
}

作者:Liuhaohong

2024/12/20 12:56
加载中...