POJ1580 水题,积累!
生活随笔
收集整理的這篇文章主要介紹了
POJ1580 水题,积累!
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題意簡述】:題意非常easy。就是將這兩個字符串比較,移動著比較。求出最多的同樣的元素個數。然后用題目中所給的公式,寫出結果。
【分析】:本題要注意的就是for循環的形式。注意積累就可以。
詳見代碼:
//196K 0Ms #include<iostream> #include<cstring> using namespace std; #define M 25 char a[M],b[M]; int len1,len2;int gcd(int a,int b) {if(b == 0)return a;else return gcd(b,a%b); } int main() {int tmp;while(cin>>a){if(strcmp(a,"-1") == 0)break;cin>>b;len1 = strlen(a);len2 = strlen(b);int max = 0;for(int i = 0;i<len1;i++){tmp = 0;for(int j = 0, k = i;j<len2,k<len1;j++,k++) // 這里的形式注意積累{if(a[k] == b[j])tmp++;}if(max<tmp)max = tmp;}for(int i = 0;i<len2;i++){tmp = 0;for(int j = 0, k = i;j<len1,k<len2;j++,k++){if(b[k] == a[j])tmp++;}if(max<tmp)max = tmp;}max *= 2;int tmp1 = gcd(max,len1+len2);if(max == 0)cout<<"appx("<<a<<","<<b<<") = "<<0<<endl;else if(max == len1+len2)cout<<"appx("<<a<<","<<b<<") = "<<1<<endl;elsecout<<"appx("<<a<<","<<b<<") = "<<max/tmp1<<"/"<<(len1+len2)/tmp1<<endl;}return 0; }
轉載于:https://www.cnblogs.com/hrhguanli/p/5091400.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的POJ1580 水题,积累!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu15.04中安装mysql和
- 下一篇: LeetCode - Search a