Problem ID :c042. 5.全部成為F

New Thread

User 請問這樣該如何改進

ty104509 SendIMessage
fw

c042. 5.全部成為F | From: 180.217.58.237 | Post Date:2021-09-17 13:07:49.0

#include<iostream>

#include<math.h>

#include<iomanip>

#include <string>

using namespace std;

int main(int argc, const char * argv[])

{

    char n[10001];

    int m,a,b,c[10000]={0},max;

    cin>>n;

    b=strlen(n);

    for(a=0;a<b;a++)

    {

        for(m=0;n[m]=='F';m++)

        {

            c[a]++;

        }

    }

    for(m=0,max=0;m<=a;m++)

    {

        if(c[m]>max)

            max=c[m];

    }

    cout<<max;

    return 0;

}

 


文章類型: 一般 | Reply | Back
User Re:請問這樣該如何改進

sagit SendIMessage
sagit

c042. 5.全部成為F | From: 192.168.2.102 | Post Date:2021-09-17 14:58:10.0

設一個變數 cnt=0,
接下來把整個字串從頭掃描過去,
如果目前的字元是 F,則 cnt++,
並隨時記錄 cnt 的最大值,
如果目前的字元是 f,則將 cnt 歸零。
 


文章類型: 一般 | Reply | Back
User Re:請問這樣該如何改進

ty104509 SendIMessage
fw

c042. 5.全部成為F | From: 1.200.117.247 | Post Date:2021-09-17 21:57:44.0

設一個變數 cnt=0,
接下來把整個字串從頭掃描過去,
如果目前的字元是 F,則 cnt++,
並隨時記錄 cnt 的最大值,
如果目前的字元是 f,則將 cnt 歸零。
我的想法是設一個陣列b[1000]
因為很有多串F
所以所以當偵測到第一串F時b[0]一直加
直到不是F換b[1]
然後再比較大小 

 


文章類型: 一般 | Reply | Back
User Re:請問這樣該如何改進

sagit SendIMessage
sagit

c042. 5.全部成為F | From: 112.104.137.199 | Post Date:2021-09-18 00:19:07.0

我說的做法是 O(N),
而我看你的寫法是 O(N^2),
願不願意改就看你了 


文章類型: 一般 | Reply | Back
User Re:請問這樣該如何改進

ty104509 SendIMessage
fw

c042. 5.全部成為F | From: 1.200.117.247 | Post Date:2021-09-18 08:06:04.0

我說的做法是 O(N),
而我看你的寫法是 O(N^2),
願不願意改就看你了
我兩個都寫寫看 謝謝您
 


文章類型: 一般 | Reply | Back
User Re:請問這樣該如何改進

cges30901 SendIMessage
cges30901

c042. 5.全部成為F | From: 27.52.228.184 | Post Date:2021-09-19 10:06:37.0

        for(m=0;n[m]=='F';m++)
m=0改成m=a 


文章類型: 一般 | Reply | Back

New Thread

ZeroJudge Forum