PTA基础编程题目集(三)(7-29 删除字符串中的子串 、7-26 单词长度、6-7 统计某类完全平方数)
7-29 删除字符串中的子串 (20分)
https://pintia.cn/problem-sets/14/problems/809
string常用函数https://blog.csdn.net/fdqw_sph/article/details/54233971
法一代码:
#include <cstdio>
#include <iostream>
#include <string>
#include <cstring>
using namespace std;
int main()
{
string optin,target;
getline(cin,optin);
getline(cin,target);
int pos=optin.find(target);
while(pos!=string::npos)
{
optin.erase(pos,target.size());
pos=optin.find(target);
}
cout<<optin<<endl;
return 0;
}
法二代码:
#include <cstdio>
#include <string>
#include <cstring>
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
char ch1[90]={""};
char ch2[90]={""};
int i,j,k;
int comb=0,a,b,c;
int m=0,n=0;
for(i=0;;i++)
{
scanf("%c",&ch1[i]);
if(ch1[i]=='\n') break;
m++;
}
for(j=0;;j++)
{
scanf("%c",&ch2[j]);
if(ch2[j]=='\n') break;
n++;
}
for(a=0;a<m;a++)
{
if(ch1[a]==ch2[0]) comb=1;
for(b=0;b<n;b++)
{
if(ch1[a+b]!=ch2[b]) comb=0;
}
if(comb==1)
{
m=m-n;
for(i=a;i<m;i++) ch1[i]=ch1[i+n];
a=-1;
comb=0;
}
ch1[m]='\0';
}
for(j=0;j<m;j++) cout<<ch1[j];
cout<<endl;
return 0;
}
7-26 单词长度 (15分)
https://pintia.cn/problem-sets/14/problems/806
#include <cstdio>
#include <cstring>
#include <string>
#include <iostream>
using namespace std;
int main()
{
char chr;
int a[50]={0};
int i=0,m=0;
int flag=0;
while((chr=getchar())!='.')
{
if(chr==' ')
{
flag=1;
continue;
}
if(flag==1)
{
m++;
flag=0;
}
a[m]++;
}
if(a[0]==0)
{
for(i=0;i<=m;i++)
{
a[i]=a[i+1];
}
m--;
}
for(i=0;i<=m;i++)
{
if(i!=m) cout<<a[i]<<" ";
else cout<<a[i];
}
cout<<endl;
return 0;
}
6-7 统计某类完全平方数 (20分)
代码:
int IsTheNumber(const int N)
{
int i,j,k;
int m=sqrt(N);
if(m*m==N)
{
int temp=N;
int a[10]={0};
while(temp!=0)
{
int value=temp%10;
a[value]+=1;
temp/=10;
}
for(i=0;i<10;i++)
{
if(a[i]>=2) return 1;
}
}
return 0;
}
天晴了,起飞吧

浙公网安备 33010602011771号