dlgd_start @ 2024-08-20 15:51:39
#include<iostream>
#include<string>
using namespace std;
int main()
{
int q,i,j;
cin>>q;
string s,d="";
cin>>s;
string a[1000];
cin.ignore();
for(i=0;i<q;i++)
{
getline(cin,a[i]);
}
for(i=0;i<q;i++)
{
if(i!=q-1)
{
if(a[i][0]=='1')
{
for(j=2;j<a[i].size();j++)
{
s=s+a[i][j];
}
cout<<s<<endl;
}
if(a[i][0]=='2')
{
for(j=(int)(a[i][2]-'0');j<(int)(a[i][2]-'0')+(int)(a[i][4]-'0');j++)
{
d=d+s[j];
s=d;
}
cout<<s<<endl;
d="";
}
if(a[i][0]=='3')
{
for(j=0;j<=(int)(a[i][2]-'0')-1;j++)
{
d=d+s[j];
}
for(j=4;j<a[i].size();j++)
{
d=d+a[i][j];
}
for(j=(int)(a[i][2]-'0');j<s.size();j++)
{
d=d+s[j];
}
s=d;
cout<<s<<endl;
d="";
}
if(a[i][0]=='4')
{
for(j=2;j<a[i].size();j++)
{
d=d+a[i][j];
}
if(s.find(d)==s.npos)
{
cout<<"−1"<<endl;
}
else{
cout<<s.find(d)<<endl;
}
d="";
}
}
if(i==q-1)
{
if(a[i][0]=='1')
{
for(j=2;j<a[i].size();j++)
{
s=s+a[i][j];
}
cout<<s;
}
if(a[i][0]=='2')
{
for(j=(int)(a[i][2]-'0');j<(int)(a[i][2]-'0')+(int)(a[i][4]-'0');j++)
{
d=d+s[j];
s=d;
}
cout<<s;
d="";
}
if(a[i][0]=='3')
{
for(j=0;j<=(int)(a[i][2]-'0')-1;j++)
{
d=d+s[j];
}
for(j=4;j<a[i].size();j++)
{
d=d+a[i][j];
}
for(j=(int)(a[i][2]-'0');j<s.size();j++)
{
d=d+s[j];
}
s=d;
cout<<s;
d="";
}
if(a[i][0]=='4')
{
for(j=2;j<a[i].size();j++)
{
d=d+a[i][j];
}
if(s.find(d)==s.npos)
{
cout<<"−1";
}
else{
cout<<s.find(d);
}
d="";
}
}
}
return 0;
}
by lccjsw @ 2024-08-20 15:58:08
@dlgd_start 兄弟一个入门题 你写130代码:厉害(我去给你改一下)
by Emil_ @ 2024-08-20 16:01:39
@dlgd_start
#include <bits/stdc++.h>
using namespace std;
int n,f,x,y;
string a,b,b1,b2;
int main(){
cin>>n>>a;
while(n--){
cin>>f;
if(f==1){
cin>>b;
a.insert(a.size(),b);
cout<<a<<endl;
}else if(f==2){
cin>>x>>y;
a=a.substr(x,y);
cout<<a<<endl;
}else if(f==3){
cin>>x>>b1;
a.insert(x,b1);
cout<<a<<endl;
}else if(f==4){
cin>>b2;
int s=a.find(b2);
if(s!=-1)
cout<<s<<endl;
else
cout<<-1<<endl;
}
}
return 0;
}
by dlgd_start @ 2024-08-22 12:14:48
@Emil_ 可以问一下我的代码是哪里有问题吗
by dlgd_start @ 2024-08-22 12:15:41
@lccjsw 感谢宁TT
by lccjsw @ 2024-08-22 14:44:00
@dlgd_start 我替我兄弟给你解答一下: 1>总体来说代码过于复杂,源代码中18-78行与74-125行是重复的(本人认为没有意义)(而且很难理解)
2>细节代码: 除定义的i,j外; 其余应该定义在主函数外边; 并且这个数组定义是可有可无的
3>如a[i][0]=='1'可以简写为f==1,等; 4>原代码中IF当中会有一个for循环来支持,相比只写
cin>>b;
a.insert(a.size(),b);
cout<<a<<endl;
反而简单的多
5>最后的判断写的不是很好 注:本人不是不会写注释,而是做题的时候太懒了(某些人别在背后发帖子蛐蛐了比如F……r)
by lccjsw @ 2024-08-22 14:48:01
@lccjsw @Emil_