日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

string笔记

發(fā)布時(shí)間:2024/10/8 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 string笔记 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2020.10.16
C++ 將字符串和數(shù)組拼接起來


字符串匹配-string

這個(gè)代碼有問題

#include<bits/stdc++.h> using namespace std; int bijiao(string a,string b) {int maxer=0;int lena=a.length();int lenb=b.length();for(int i=0;i<lena;i++){int sum=0;for(int j=0;j<lenb&&i+j<lena;j++)///暴力{if(a[i+j]==b[j]){sum++;}}maxer=max(maxer,sum);}return maxer; } int main() {string a,b;int q,p,gcdd;while(cin>>a){if(a=="-1"){break;}///cin>>b;///很秀q=max(bijiao(a,b),bijiao(b,a));q*=2;p=a.length()+b.length();gcdd=__gcd(q,p);///gcd約分///對(duì)于,1,0要特判;if(q==0){printf("appx(%s,%s)=0\n",a.c_str(),b.c_str());continue;}if(q==p){printf("appx(%s,%s)=1\n",a.c_str(),b.c_str());continue;}printf("appx(%s,%s)=%d/%d\n",a.c_str(),b.c_str(),q/gcdd,p/gcdd);}return 0; }

字符串乘方-string
poj 2406 Power Strings
///求最小循環(huán)節(jié)
///next數(shù)組
//這道題試問我們一個(gè)串有幾個(gè)循環(huán)節(jié)。
//循環(huán)節(jié)就是指相等的(真)前綴和(真)后綴的個(gè)數(shù)。
//我們知道,kmp過程中的next[i]是這個(gè)意義:0-i-1位中相等的真前后綴個(gè)數(shù)。
//那么next[len]就是指0-len-1位中相等的真前后綴個(gè)數(shù)。
///s[1]=s[3],s[2]=s[4],s[3]=s[5],s[4]=s[6].
///說明長度為2的字符串在原串中一定重復(fù)出現(xiàn),這就是len-next[len]的含義!

#include<bits/stdc++.h> using namespace std; const int N=1e5+100; char str[N]; int nextz[N]; int n; void next_maker() {memset(nextz,0,sizeof(nextz));n=strlen(str+1);int j=0;for(int i=1; i<n; i++){while(j!=0&&str[i+1]!=str[j+1]){j=nextz[j];}if(str[i+1]==str[j+1]){j++;nextz[i+1]=j;}else{nextz[i+1]=j;}} } int main() {while(cin>>str+1&&str[1]!='.'){next_maker();if(n%(n-nextz[n])==0){printf("%d\n",n/(n-nextz[n]));///這個(gè)公式背吧len-next[len]}else{printf("\n");}}return 0; }

字符串處理-string

暴力

#include<bits/stdc++.h> using namespace std; int if_huiwen(string str) {int flag=1;int i=0,j=str.length()-1;while(1){if(str[i]!=str[j]){flag=0;break;}if(i==j||i+1==j)///反正已經(jīng)檢測過了,加1減1都行{break;}i++;j--;}if(flag){return 1;}else{return 0;} } int main() {string str;while(cin>>str){int ans=0;for(int i=0;i<str.length();i++){for(int j=1;j<=str.length()-i;j++){// cout<<i<<" "<<j<<" "<<str.substr(i,j)<<endl;if(if_huiwen(str.substr(i,j))){ans++;}}}printf("%d\n",ans);}return 0; }

strange string

#include<bits/stdc++.h> using namespace std; int vis[300];///桶排,為提速開了abc,不用最后遍歷一遍 int cnt; int abc[26];///應(yīng)該只有三個(gè),但怕出事開了26個(gè) int main() {///只能有a,b,c//cout << "Hello world!" << endl;char str[100];while(cin>>str+1)///字符串以后都這么處理,很舒服{memset(vis,0,sizeof(vis));memset(abc,0,sizeof(abc));str[0]=str[1];///初始標(biāo)記cnt=0;int n=strlen(str+1);///記錄長度for(int i=1;i<=n+1;i++){vis[str[i]]++;///桶排if(str[i]!=str[i-1])///進(jìn)入新的字符{abc[++cnt]=vis[str[i-1]];///ans為標(biāo)記,且記錄相應(yīng)的個(gè)數(shù),cnt記錄是不是只有a,b,c}///%3也行,或者直接遍歷vis也行}if(cnt!=3||(abc[2]!=abc[1]||abc[3]!=abc[1]||abc[1]!=abc[3])){cout<<"NO"<<endl;}else{cout<<"YES"<<endl;}}return 0; }

取子字符串-string

#include<bits/stdc++.h> using namespace std; int main() {string str;int n,m;string zi;while(cin>>str>>n>>m){zi=str.substr(n-1,m-n+1);// str.erase(n,m+1);cout<<zi<<endl;}return 0; }

氣球-string-map

#include<bits/stdc++.h> using namespace std; map<string,int>qi; int main() {int n;string buf;while(cin>>n&&n!=0){qi.clear();for(int i=0;i<n;i++){cin>>buf;qi[buf]++;}int maxer=0;string maxerstr;for(map<string,int>::iterator it=qi.begin();it!=qi.end();it++){if(it->second>maxer){maxer=it->second;maxerstr=it->first;}}cout<<maxerstr<<endl;}return 0; }

回文字符串-string

#include<bits/stdc++.h> using namespace std;int main() {int n;cin>>n;string str;for(int nn=0;nn<n;nn++){cin>>str;int flag=1;int i=0,j=str.length()-1;while(1){if(str[i]!=str[j]){flag=0;break;}if(i==j||i+1==j)///反正已經(jīng)檢測過了,加1減1都行{break;}i++;j--;}if(flag){printf("YES\n");}else{printf("NO\n");}}return 0; }

字符串合并-string

#include<bits/stdc++.h> using namespace std;int main() {string a,b;while(cin>>a>>b){cout<<a+b<<endl;}return 0; }

總結(jié)

以上是生活随笔為你收集整理的string笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。