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; }
天晴了,起飞吧