Board logo

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

作者: ray    時間: 2020-7-11 11:15     標題: c462: apcs 交錯字串 解答

本帖最後由 ray 於 2020-7-11 11:16 編輯
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;

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

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

  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. }
複製代碼

作者: 黃璽安    時間: 2020-7-11 11:36

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





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