题一:(只过了60%)
最大数(输入的数字可能很大,正整数)
输入2行:第一行是正整数,第二行是要删除的数字个数
输出 1行:为 删除后的最大数
例子:
输入:
325
1
输出:
35
【像 1000,10001,11111 以及10242(删除2个,结果为242) 这些情况都考虑到了,为什么还是有遗漏】
#include <iostream>
#include<string>
#include<vector>
#include<stdio.h>
using namespace std;
int main()
{
//long int n;
//string s;
// cin.getline(s,size);
//
//ltoa(n,s,10);
vector<char>s;
char c;
while((c=getchar())!='\n')//c接收的值是输入第一个字符后按下的回车换行符'\n',c是不会显示的
{
//printf("%c",c);
s.push_back(c);
}
int n;
cin>>n;
int i;
for(int j=0;j<n;j++)
for(i=0;i<s.size();i++)
{
if(s[i]<s[i+1]){s[i]='a'; break;}//s.erase(i);
else {if(i==s.size()-1)s[i]='a';continue;}
}
for(i=0;i<s.size();i++)
{
if(s[i]=='a')continue;
else cout<<s[i];
}cout<<endl;
return 0;
}
题二:(过了0% 本地是可以的!!why)
切项链问题(王后喜欢ABCDE五种宝石,在满足国王的要求的同时,也要使得自己获得最多)
输入一行:字符串表示一条项链,每个字母表示不同的种类,从中切出包含ABCDE的连续字符串,剩下的字符串个数即为所求。
输出一行:所得最多的宝石数量。
输入:
ABCYDYE
输出:1
输入:
ABCTTMECPD
输出:
3
#include <iostream>
#include<string>
#include<vector>
#include<stdio.h>
using namespace std;
int main()
{
vector<char>s;
char c;
int i,n;
while((c=getchar())!='\n')
{
s.push_back(c);
}
int k=0;
n=1;
for(i=0;i<s.size();i++)
{
if(s[i]!='A'&&s[i]!='B'&&s[i]!='C'&&s[i]!='D'&&s[i]!='E')
{
n++;
if(k==1)n--;
k=0;
}
else k=1;
}
cout<<n<<endl;
return 0;
}
本文解析了两道编程题目:一是如何通过删除指定数量的数字得到最大整数;二是解决切项链问题,找出包含特定字符的最长连续子串并计算剩余字符数量。
6340

被折叠的 条评论
为什么被折叠?



