Board logo

標題: c462: apcs 交錯字串 [打印本頁]

作者: ray    時間: 2020-7-4 10:09     標題: c462: apcs 交錯字串

https://zerojudge.tw/ShowProblem?problemid=c462
作者: ray    時間: 2020-7-4 10:47

  1. #include <iostream>
  2. #include <string>
  3. using namespace std;

  4. int main()
  5. {
  6.     int k,max,len,type;
  7.     string str;
  8.     cin>>k>>str;
  9.    
  10.     cout<<k<<":"<<str<<endl;
  11.     return 0;
  12. }
複製代碼

作者: ray    時間: 2020-7-4 10:48

https://openhome.cc/Gossip/CppGossip/string2.html
作者: 李知易    時間: 2020-7-4 12:08

本帖最後由 李知易 於 2020-7-11 11:36 編輯
  1. #include <iostream>
  2. #include <string>
  3. #include <cstring>
  4. using namespace std;

  5. int main()
  6. {
  7.     int k,m,len,type,l,t;
  8.     string str;
  9.     cin>>k>>str;
  10.     m = len = l = 0;
  11.     for(int i = 0; i < str.length(); i++)
  12.     {
  13.         t = isupper(str[i]);
  14.         if(i == 0)
  15.             type = t;
  16.         if(type == t)
  17.         {
  18.             l++;
  19.             if(l > k)
  20.                 len = k;
  21.             //if(l == k)
  22.                 //len += k;
  23.         }
  24.         else
  25.         {
  26.             if(l < k)
  27.                 len=0;
  28.             l=1;
  29.             //if(l == k)
  30.                 //len+=k;
  31.         }
  32.         if(l == k)
  33.             len+=k;
  34.         m = max(len,m);
  35.         type = t;
  36.     }
  37.    
  38.     cout<<m<<endl;
  39.     //system("pause");
  40.     return 0;
  41. }
複製代碼

作者: 陳泓瑜    時間: 2020-7-4 12:08

  1. #include<iostream>
  2. #include<cstdlib>
  3. #include<string>
  4. using namespace std;
  5. int main()
  6. {
  7.     int k, max=0, kl=0, type, ts, now=0;//ts=char type, type = switch, now -> max, kl -> k
  8.     string s;
  9.    
  10.     cin>>k>>s;
  11.    
  12.     if(s[0] >= 65 && s[0] <= 90)
  13.     {
  14.         type = 1;//uppercase: 1, lowercase: 0
  15.         ts = 1;
  16.         now++;
  17.     }
  18.     else
  19.     {
  20.         type = 0;//uppercase: 1, lowercase: 0
  21.         ts = 0;
  22.         now++;
  23.     }
  24.     for(int i = 1; i < s.length(); i++)
  25.     {
  26.         kl++;
  27.         if(s[i] >= 65 && s[i] <= 90)
  28.             ts = 1;
  29.         else
  30.             ts = 0;
  31.         if(type == ts)
  32.             now++;
  33.         if(kl == k)
  34.         {
  35.             kl = 0;
  36.             if(type = 1)
  37.                type = 0;
  38.             if(type = 0)
  39.                type = 1;
  40.             if(now >= max)
  41.                max = now;
  42.             now = 0;
  43.         }
  44.     }
  45.     cout<<max;
  46.    
  47.     system("pause");
  48.     return 0;
  49. }
複製代碼

作者: 陳泓瑜    時間: 2020-7-11 11:31

  1. #include<iostream>
  2. #include<cstdlib>
  3. #include<string>
  4. using namespace std;
  5. int main()
  6. {
  7.     int k, max=0, kl=0, type, ts, now=0;//ts=char type, type = switch, now -> max, kl -> k
  8.     string s;
  9.    
  10.     cin>>k>>s;
  11.    
  12.     for(int i = 0; i < s.length(); i++)
  13.     {
  14.         ts = isupper(s[i]);
  15.         if(i == 0)
  16.             type = ts;
  17.         if(type == ts)
  18.         {
  19.             now++;
  20.             if(now > k)
  21.                kl = k;
  22.             if(now == k)
  23.                kl += k;
  24.                
  25.             //cout<<s[i]<<"=="<<endl;
  26.         }
  27.         else
  28.         {
  29.             if(now < k)
  30.                kl = 0;
  31.             now=1;
  32.             if(now == k)
  33.                kl += k;
  34.                
  35.            //cout<<s[i]<<"<>"<<endl;
  36.         }
  37.         if(kl > max)
  38.             max = kl;
  39.         type = ts;
  40.         //cout<<"kl="<<kl<<"now="<<now<<endl;
  41.     }
  42.     cout<<max;

  43.     return 0;
  44. }
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/) Powered by Discuz! 7.2