具體參照
hihocoder**。
因為字串長度最大為100,只有abc三個字元,所以只有300種情況,每種情況最差處理是o(100^2)。所以即便最差情況也只有3e6的計算次數,不足10ms。
因此只需要實現窮舉演算法即可,先插入字元,然後判斷會消除多少字元。
輸入字串,返回消除字元的數目,同時字串改變為消除之後的字串。例如str="abcbcccaa",函式值返回為5,str變為"abcb"。
int eliminate(char *str);
for (int i = 0;i < len;++i)
pre = str[i];
}if (result > 0)
else
return 0;
}
輸入字串,返回通過插入字元可以得到的最多消除字元數目。是列舉在所有位置上插入abc的所有情況,返回其中的最大值。
int cal2(char *str)
}return result;
}
只是輸入輸出,此處跳過。
先消除字串,然後再插入字元消除。初心是減少列舉的次數,但是反例是"aaba"。
int cal_highest_score(char *str)
strcpy(str,tmp_str);
return eli + eli2 + 1;
}
列舉所有字元長度小於100且只含有abc字元的字串,比較正確函式與錯誤函式的結果以得到反例。
int main()
; int depth = 0,tmp;
while (depth > -1)
else
++depth;}}
}
hihocoder 1039 字元消除
小hi最近在玩乙個字元消除遊戲。給定乙個只包含大寫字母 abc 的字串s,消除過程是如下進行的 1 如果s包含長度超過1的由相同字母組成的子串,那麼這些子串會被同時消除,餘下的子串拼成新的字串。例如 abccbcccaa 中 cc ccc 和 aa 會被同時消除,餘下 ab 和 b 拼成新的字串 a...
Hihocoder 1039 字元消除
小hi最近在玩乙個字元消除遊戲。給定乙個只包含大寫字母 abc 的字串s,消除過程是如下進行的 1 如果s包含長度超過1的由相同字母組成的子串,那麼這些子串會被同時消除,餘下的子串拼成新的字串。例如 abccbcccaa 中 cc ccc 和 aa 會被同時消除,餘下 ab 和 b 拼成新的字串 a...
hihocoder 1039 字元消除
時間限制 1000ms 單點時限 1000ms 記憶體限制 256mb 小hi最近在玩乙個字元消除遊戲。給定乙個只包含大寫字母 abc 的字串s,消除過程是如下進行的 1 如果s包含長度超過1的由相同字母組成的子串,那麼這些子串會被同時消除,餘下的子串拼成新的字串。例如 abccbcccaa 中 c...