Module ā§Š ¡ string: āϝ⧠text āύāĻŋāĻā§āϰ length āύāĻŋāĻā§āĻ āĻāĻžāύā§
Problem: string
āĻāĻ lesson-āĻ āϝāĻž āĻļāĻŋāĻāĻŦā§
cin >>āĻĻāĻŋāϝāĻŧā§ word āĻāϰgetlineāĻĻāĻŋāϝāĻŧā§ āĻĒā§āϰ⧠āϞāĻžāĻāύ āĻĒāĻĄāĻŧāϤ⧠āĻĒāĻžāϰāĻŦā§, āĻāĻāĻāĻž āϏāĻāĻā§āϝāĻžāϰ āĻĒāϰ⧠āĻāϏāĻž āϞāĻžāĻāύāĻāĨ¤find,substr,+=āĻāϰto_stringāĻĻāĻŋāϝāĻŧā§ text āĻāĻžāĻāϤ⧠āĻāϰ āĻāϤā§āϤāϰ āĻāĻĄāĻŧāϤ⧠āĻĒāĻžāϰāĻŦā§, āĻĒā§āϰāϤāĻŋāĻāĻž āĻā§āĻāĻstring::npos-āĻāϰ āϏāĻžāĻĨā§ āĻŽāĻŋāϞāĻŋāϝāĻŧā§āĨ¤- āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻāĻā§āϝāĻžāϰ āĻāύā§āϝ
long longāύāĻžāĻāĻŋ digit-āĻāϰ āĻāĻāĻāĻž string, āϏā§āĻāĻž āĻŦāĻžāĻāϤ⧠āĻĒāĻžāϰāĻŦā§, āĻāϰ āϞāĻŽā§āĻŦāĻž āĻāϤā§āϤāϰ āϏāĻŽāϝāĻŧā§āϰ āĻŽāϧā§āϝ⧠āĻāĻĄāĻŧāϤ⧠āĻĒāĻžāϰāĻŦā§āĨ¤
āĻĻāĻļāĻāĻž problem, hidden test āĻĻāĻŋāϝāĻŧā§ āĻā§āϰā§āĻĄ āĻšāϝāĻŧāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž āĻāĻ module-āĻāϰ lesson 01 āĻĨā§āĻā§ 06-āĻāϰ āĻā§āύ⧠āĻāĻāĻāĻž idea-āϰ āĻ āύā§āĻļā§āϞāύāĨ¤ Problem 1, 2 āĻāϰ 5 āĻĢā§āϰāĻŋāĨ¤ āĻŦāĻžāĻāĻŋ āϏāĻžāϤāĻāĻž āĻā§āϞ⧠Learn Pro āĻŦāĻž track āĻāĻŋāύāϞā§āĨ¤
Bob sample āĻĒāĻĄāĻŧā§, āĻāĻāĻāĻž loop āϞā§āĻā§, āĻāϰ submit āĻāϰ⧠āĻĻā§āϝāĻŧāĨ¤ Zara āĻāĻā§ āĻāĻžāϞāĻŋāϝāĻŧā§ āĻĻā§āĻā§ āĻāĻāĻāĻž word, āĻā§āύ⧠āĻŽāĻŋāϞ āύāĻž āĻĨāĻžāĻāĻž, space āĻĻāĻŋāϝāĻŧā§ āĻļā§āϰ⧠āĻšāĻāϝāĻŧāĻž āϞāĻžāĻāύ āĻāϰ āϏāĻŦāĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧ inputāĨ¤ Text āύāĻŋāϝāĻŧā§ āĻāĻ set-āĻ Zara-āϰ āĻ āĻā§āϝāĻžāϏāĻāĻžāĻ āύāĻŽā§āĻŦāϰ āĻāύā§āĨ¤
āĻĒā§āϰāϤāĻŋāĻāĻž starter text āĻĒāĻĄāĻŧā§ āϤāĻŋāύāĻāĻž āϧāĻžāĻāĻā§āϰ āĻāĻāĻāĻžāϝāĻŧ
āĻĒā§āϰāϤāĻŋāĻāĻž starter ios::sync_with_stdio(false); āĻāϰ cin.tie(nullptr); āĻĻāĻŋāϝāĻŧā§ fast input āĻāϰ output āĻāĻžāϞ⧠āĻāϰā§, Module 1 āĻĨā§āĻā§āĨ¤ āϤāĻžāϰāĻĒāϰ input āĻĒāĻĄāĻŧā§ āϤāĻŋāύāĻāĻž āϧāĻžāĻāĻā§āϰ āĻā§āύ⧠āĻāĻāĻāĻžāϝāĻŧāĨ¤ āϏāĻŦāĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧ test āĻĒā§āϰāĻžāϝāĻŧ 1 MB text, āϤāĻžāĻ āĻĒāĻĄāĻŧāĻžāϰ āĻāϤāĻŋ āĻāĻāĻžāύ⧠āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖāĨ¤
āĻāĻŋāĻā§ problem āĻĻā§āϝāĻŧ word: cin >> word space āĻāĻžāĻĄāĻŧāĻž character-āĻāϰ āĻāĻāĻāĻž āĻāĻžāύāĻž āϏāĻžāϰāĻŋ āĻĒāĻĄāĻŧā§, āĻāϰ āϤāĻžāϰ āĻāĻā§āϰ āϏāĻŦ space āĻāϰ āύāϤā§āύ āϞāĻžāĻāύ āĻĒāĻžāϰ āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧāĨ¤ āĻāĻŋāĻā§ āĻĻā§āϝāĻŧ āϞāĻžāĻāύ: getline(cin, line) āĻĒā§āϰ⧠āĻāĻāĻāĻž āϞāĻžāĻāύ āĻĒāĻĄāĻŧā§, space-āϏāĻš, āĻāϰ āĻļā§āώā§āϰ āύāϤā§āύ āϞāĻžāĻāύāĻāĻž āĻĢā§āϞ⧠āĻĻā§āϝāĻŧāĨ¤ āĻāϰ āĻāĻŋāĻā§ āĻāĻā§ āĻāĻāĻāĻž count āĻĻā§āϝāĻŧ, āϤāĻžāϰāĻĒāϰ āϞāĻžāĻāύāĨ¤ āĻāĻ āϤā§āϤā§āϝāĻŧ āϧāĻžāĻāĻā§āϰ āύāĻŋāĻāϏā§āĻŦ āĻāĻāĻāĻž āĻĢāĻžāĻāĻĻ āĻāĻā§, āĻĻā§āĻ section āĻĒāϰā§āĨ¤
Judge āĻāĻāύ⧠āϤā§āĻŽāĻžāϰ string-āĻāϰ āĻāĻŋāϤāϰ⧠āϤāĻžāĻāĻžāϝāĻŧ āύāĻžāĨ¤ āĻ āĻāĻāĻāĻž hidden input āĻĻāĻŋāϝāĻŧā§ āĻĒā§āϰ⧠program āĻāĻžāϞāĻžāϝāĻŧ, āĻāϰ program āϝāĻž print āĻāϰ⧠āϏā§āĻāĻž āϞāĻžāĻāύ āϧāϰ⧠āϧāϰ⧠āĻŽā§āϞāĻžāϝāĻŧāĨ¤ āϞāĻžāĻāύā§āϰ āĻļā§āώ⧠āĻŦāĻžāĻĄāĻŧāϤāĻŋ space judge āϧāϰ⧠āύāĻž, āĻāĻŋāύā§āϤ⧠āϞāĻžāĻāύā§āϰ āĻāĻŋāϤāϰā§āϰ space āϧāϰā§āĨ¤ yes, no āĻāϰ none-āĻāϰ āĻŽāϤ⧠āĻļāĻŦā§āĻĻ āϝā§āĻŽāύ āϞā§āĻāĻž, āĻšā§āĻŦāĻšā§ āϤā§āĻŽāύ print āĻāϰā§āĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž āϞāĻžāĻāύ āĻļā§āώ āĻāϰ⧠'\n' āĻĻāĻŋāϝāĻŧā§āĨ¤
āĻļā§āϧ⧠ASCII, āϤāĻžāĻ size() āĻŽāĻžāύā§āĻ character āĻāϝāĻŧāĻāĻž
Lesson 01 āĻĻā§āĻāĻŋāϝāĻŧā§āĻā§, string āĻšāϞ⧠byte-āĻāϰ āĻāĻāĻāĻž āϏāĻžāϰāĻŋāĨ¤ UTF-8-āĻ āĻāĻāĻāĻž āĻŦāĻžāĻāϞāĻž āĻ
āĻā§āώāϰ āύā§āϝāĻŧ 3 byte, āϤāĻžāĻ āĻāĻāĻāĻž āĻŦāĻžāĻāϞāĻž word-āĻāϰ size() āĻāϰ āĻ
āĻā§āώāϰā§āϰ āϏāĻāĻā§āϝāĻž āύāĻžāĨ¤ āĻāĻ set-āĻāϰ āĻĒā§āϰāϤāĻŋāĻāĻž input ASCII: 32 āĻŽāĻžāύ⧠space āĻĨā§āĻā§ 126 āĻŽāĻžāύ⧠tilde ~ āĻĒāϰā§āϝāύā§āϤ character, āϏāĻžāĻĨā§ āύāϤā§āύ āϞāĻžāĻāύāĨ¤ āĻāĻĻā§āϰ āĻĒā§āϰāϤāĻŋāĻāĻž āĻāĻ byteāĨ¤
āϤāĻžāĻ āĻāĻāĻžāύ⧠s.size() āĻŽāĻžāύā§āĻ character āĻāϝāĻŧāĻāĻž, āĻāϰ s[i] āĻšāϞ⧠position i-āĻāϰ character, 0 āĻĨā§āĻā§ āĻā§āύā§āĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž statement āĻāĻĨāĻžāĻāĻž āĻāĻŦāĻžāϰ āĻŦāϞā§, āϝā§āύ āĻā§āύ⧠āĻāϤā§āϤāϰ text-āĻāϰ encoding-āĻāϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰ āύāĻž āĻāϰā§āĨ¤ āĻ
āĻā§āώāϰāĻā§āϞ⧠āĻŦāϏ⧠āĻĻā§āĻāĻāĻž āĻāĻžāύāĻž āϏāĻžāϰāĻŋāϤā§, 'A' āĻĨā§āĻā§ 'Z' āĻāϰ 'a' āĻĨā§āĻā§ 'z', āĻāϰ digit-āĻā§āϞ⧠'0' āĻĨā§āĻā§ '9'āĨ¤
cin >> n-āĻāϰ āĻĒāϰ⧠āϞāĻžāĻāύ āĻĒāĻĄāĻŧāϤ⧠āĻāĻā§ āĻāĻāĻāĻž getline āϞāĻžāĻā§
cin >> n āϏāĻāĻā§āϝāĻžāĻāĻž āĻĒāĻĄāĻŧā§, āĻāϰ āĻĨāĻžāĻŽā§ āĻ āĻŋāĻ āĻāϰ āĻļā§āώ digit-āĻāϰ āĻĒāϰā§āĨ¤ āϝ⧠āύāϤā§āύ āϞāĻžāĻāύ āĻĻāĻŋāϝāĻŧā§ āĻāĻ āϞāĻžāĻāύāĻāĻž āĻļā§āώ āĻšāϝāĻŧā§āĻāĻŋāϞ, āϏā§āĻāĻž āϤāĻāύ⧠input-āĻ āĻ
āĻĒā§āĻā§āώāĻž āĻāϰāĻā§āĨ¤ āĻĒāϰā§āϰ getline āĻĒāĻĄāĻŧā§ āĻāĻ āύāϤā§āύ āϞāĻžāĻāύ āĻĒāϰā§āϝāύā§āϤ, āϤāĻžāĻ āĻĢā§āϰāϤ āĻĻā§āϝāĻŧ āĻāĻāĻāĻž āĻĢāĻžāĻāĻāĻž āϞāĻžāĻāύāĨ¤
āĻāĻ āĻāĻžāϰāĻŖā§āĻ āύāĻŋāĻā§āϰ āϤāĻŋāύāĻāĻž starter count āĻĒāĻĄāĻŧāĻžāϰ āĻĒāϰ⧠āĻāĻāĻŦāĻžāϰ getline(cin, line); call āĻāϰā§, āĻĒāĻžāĻļā§ comment "finish the line that held n"āĨ¤ āĻāĻ āϞāĻžāĻāύāĻāĻž āϰā§āĻā§ āĻĻāĻžāĻāĨ¤ āĻāĻāĻž āύāĻž āĻĨāĻžāĻāϞ⧠āϤā§āĻŽāĻŋ āĻĒā§āϰāĻĨāĻŽā§ check āĻāϰāĻŦā§ āĻĢāĻžāĻāĻāĻž āϞāĻžāĻāύāĻāĻž, āĻāϰ āĻļā§āώā§āϰ āĻāϏāϞ āϞāĻžāĻāύāĻāĻž āĻāĻāύ⧠āĻĒāĻĄāĻŧāĻžāĻ āĻšāĻŦā§ āύāĻžāĨ¤ āύāĻŋāĻā§āϰ āĻā§āϞ 1 output-āĻāĻž āĻĻā§āĻāĻžāϝāĻŧāĨ¤
find āĻā§āĻāĻā§ āύāĻž āĻĒā§āϞ⧠āĻĻā§āϝāĻŧ npos, āĻāĻāύ⧠-1 āύāĻž
s.find(t) āĻĢā§āϰāϤ āĻĻā§āϝāĻŧ āϏā§āĻ index, āϝā§āĻāĻžāύ⧠s-āĻāϰ āĻāĻŋāϤāϰ⧠t āĻĒā§āϰāĻĨāĻŽ āĻļā§āϰ⧠āĻšāϝāĻŧāĨ¤ āĻā§āύ⧠āĻŽāĻŋāϞ āύāĻž āĻĨāĻžāĻāϞ⧠āĻĻā§āϝāĻŧ string::npos, āĻāĻāĻāĻž size_t-āĻ āϝāϤ āĻŦāĻĄāĻŧ āĻŽāĻžāύ āϧāϰā§, āϤāĻžāϰ āϏāĻŦāĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧāĻāĻžāĨ¤ āϤāĻžāĻ check āϏāĻŦāϏāĻŽāϝāĻŧ pos == string::npos, āĻāĻāύ⧠pos == -1 āĻŦāĻž pos < 0 āύāĻžāĨ¤
āĻĢāϞāĻāĻž āϰāĻžāĻā§ āĻāĻāĻāĻž size_t-āĻ, find āϝ⧠type āĻĻā§āϝāĻŧ āϏā§āĻāĻžāϤā§āĻāĨ¤ s.find(t, from) āĻā§āĻāĻāĻž āĻļā§āϰ⧠āĻāϰ⧠index from āĻĨā§āĻā§, āĻāϰ āĻāĻāĻžāĻŦā§āĻ āĻāĻāĻāĻž loop āϏāĻŦ āĻŽāĻŋāϞ āĻā§āĻāĻā§ āĻĒāĻžāϝāĻŧāĨ¤ substr(pos, len) pos āĻĨā§āĻā§ len-āĻāĻž character āύā§āϝāĻŧ, āĻāϰ substr(pos) āύā§āϝāĻŧ pos āĻĨā§āĻā§ āĻļā§āώ āĻĒāϰā§āϝāύā§āϤ āϏāĻŦāĻāĻŋāĻā§āĨ¤ āϤāĻžāĻ find āĻāϰ substr āĻŽāĻŋāϞ⧠āĻāĻāĻāĻž string-āĻā§ āϝā§āĻā§āύ⧠character-āĻ āĻāĻžāĻāϤ⧠āĻĒāĻžāϰā§āĨ¤
āϏāĻāĻā§āϝāĻž āϝāĻāύ long long-āĻā§āĻ āĻāĻžāĻĄāĻŧāĻŋāϝāĻŧā§ āϝāĻžāϝāĻŧ
āĻāĻāĻāĻž long long-āĻ āϧāϰ⧠9223372036854775807 āĻĒāϰā§āϝāύā§āϤ, āĻŽāĻžāύ⧠9 x 1018-āĻāϰ āĻāĻāĻā§ āĻŦā§āĻļāĻŋāĨ¤ thousands-separator āĻāϰ āĻāĻŋāϤāϰā§āĻ āĻĨāĻžāĻā§: āĻāϰ āϏāĻāĻā§āϝāĻž āϝāĻžāϝāĻŧ 1018 āĻĒāϰā§āϝāύā§āϤ, āĻāϰ -1018-āĻ āϧāϰ⧠āϝāĻžāϝāĻŧāĨ¤ to_string(x) āĻāĻŽāύ āϏāĻāĻā§āϝāĻžāĻā§ text āĻŦāĻžāύāĻžāϝāĻŧ, āĻāϰ stoi āĻāϰ stoll text-āĻā§ āĻāĻŦāĻžāϰ āϏāĻāĻā§āϝāĻž āĻŦāĻžāύāĻžāϝāĻŧāĨ¤
big-add āĻāϞāĻžāĻĻāĻžāĨ¤ āĻāϰ āϏāĻāĻā§āϝāĻžāϝāĻŧ 100000 āĻĒāϰā§āϝāύā§āϤ digit, āĻāϰ āĻā§āύ⧠built-in type-āĻ 20āĻāĻž digit-āĻ āϧāϰ⧠āύāĻžāĨ¤ āĻāĻŽāύ āϏāĻāĻā§āϝāĻž string āĻšāϝāĻŧā§āĻ āĻĨāĻžāĻā§, āĻāϰ āϤā§āĻŽāĻŋ āĻāĻāĻž āϝā§āĻ āĻāϰ⧠āĻāĻžāϤāĻžāϝāĻŧ āϝā§āĻāĻžāĻŦā§ āĻāϰā§, āĻāĻ āĻāϞāĻžāĻŽ āĻāϰā§āĨ¤ āĻāĻŦāĻŋāϤ⧠sample-āĻāĻž, 958 āϝā§āĻ 67āĨ¤
āĻāĻāĻāĻž āĻāϞāĻžāĻŽ āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻāĻā§āϝāĻžāϰ āĻāĻāĻāĻž digit āĻāϰ āĻšāĻžāϤā§āϰ āϏāĻāĻā§āϝāĻž āϝā§āĻ āĻāϰā§āĨ¤ āĻāϰ āĻļā§āώ digit-āĻāĻž āϞā§āĻāĻž āĻšāϝāĻŧ, āĻāϰ āĻĻāĻļāĻā§āϰ āĻ āĻāĻļāĻāĻž āĻšāϝāĻŧ āĻĒāϰā§āϰ āĻšāĻžāϤā§āϰ āϏāĻāĻā§āϝāĻžāĨ¤ āĻĻā§āĻāĻāĻž āĻāĻŋāύāĻžāϰāĻž, āĻāĻāĻāĻž āϏāĻāĻā§āϝāĻž āĻāĻā§ āĻĢā§āϰāĻŋāϝāĻŧā§ āĻā§āϞ⧠āĻā§ āĻšāϝāĻŧ āĻāϰ āĻļā§āώ⧠āĻšāĻžāϤ⧠āĻāĻŋāĻā§ āĻĨāĻžāĻāϞ⧠āĻā§ āĻšāϝāĻŧ, āϏā§āĻāĻž problem-āĻāĻžāϰ āĻāĻžāĻāĨ¤
āĻāϤā§āϤāϰ āĻŦāĻžāĻĄāĻŧāĻžāĻ += āĻĻāĻŋāϝāĻŧā§, ans = ans + piece āĻĻāĻŋāϝāĻŧā§ āύāĻž
āĻĒā§āϰāϤāĻŋāĻāĻž problem āĻāĻāĻāĻž test-āĻ āϏāĻŽāϝāĻŧ āĻĻā§āϝāĻŧ 1 āϏā§āĻā§āύā§āĻĄ, āĻĒā§āϰ⧠program-āĻāϰ āĻāύā§āϝ, input āĻĒāĻĄāĻŧāĻžāϏāĻšāĨ¤ run-length-āĻ āĻāĻ āĻ
āĻā§āώāϰā§āϰ 500000āĻāĻž āĻĻāϞā§āϰ āĻāϤā§āϤāϰ 1000000 character āϞāĻŽā§āĻŦāĻžāĨ¤ āĻāĻāĻž āĻā§āĻāĻžāĻŦā§ āĻŦāĻžāĻĄāĻŧāĻžāĻā§āĻ, āϤāĻžāϰ āĻāĻĒāϰāĻ āύāĻŋāϰā§āĻāϰ āĻāϰ⧠āϤā§āĻŽāĻŋ āĻĒāĻžāĻļ āĻāϰāĻŦā§ āĻāĻŋ āύāĻžāĨ¤
ans += piece āĻā§āĻāϰā§āĻāĻž āĻŦāϏāĻžāϝāĻŧ ans-āĻāϰ āĻļā§āώā§, āĻ āϝā§āĻāĻžāύ⧠āĻāĻā§ āϏā§āĻāĻžāύā§āĻāĨ¤ āĻā§āύ āĻāϤ⧠āĻĒā§āϰāϤāĻŋ character-āĻ amortised O(1) āĻāϰāĻ, āϏā§āĻāĻž lesson 05 āĻĻā§āĻāĻžāϝāĻŧāĨ¤ ans = ans + piece āĻāĻā§ āĻāĻāĻĻāĻŽ āύāϤā§āύ āĻāĻāĻāĻž string āĻŦāĻžāύāĻžāϝāĻŧ: āĻĒā§āϰ⧠ans-āĻāϰ āĻāĻāĻāĻž copy, āϤāĻžāϰāĻĒāϰ āĻā§āĻāϰā§āĻāĻžāĨ¤ Loop-āĻāϰ āĻāĻŋāϤāϰ⧠āĻāĻāĻž āĻĒā§āϰāϤāĻŋāĻāĻž āĻĻāϞā§āϰ āĻāύā§āϝ āĻĒā§āϰ⧠āĻāϤā§āϤāϰāĻāĻž āĻāĻāĻŦāĻžāϰ āĻāϰ⧠copy āĻāϰā§āĨ¤
āĻāĻŽāϰāĻž āĻĻā§āĻāĻāĻžāĻ āĻŽā§āĻĒā§āĻāĻŋ āϏāĻŦāĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧ test-āĻ, āĻŽāĻžāύ⧠length 1-āĻāϰ 500000āĻāĻž āĻĻāϞā§, āĻāϰ āĻāϰ āĻĒā§āϰāĻĨāĻŽ 10000 āĻĨā§āĻā§ 200000 āĻ
āĻā§āώāϰā§āĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž program chrono::steady_clock āĻĻāĻŋāϝāĻŧā§ āĻļā§āϧ⧠encode āĻāϰāĻžāϰ loop-āĻāϰ āϏāĻŽāϝāĻŧ āĻŽā§āĻĒā§āĻā§āĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻāĻā§āϝāĻž Compiler Explorer-āĻ GCC 12.2, g++ -O2 -std=c++17 āĻĻāĻŋāϝāĻŧā§ āĻāĻžāϞāĻžāύā§, Playground-āĻāϰ flag-āĻ āĻāĻā§āϞā§āĻāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻžāϰāĻŋ āĻĻā§āĻāĻāĻž session-āĻāϰ āĻĒā§āϰāϤāĻŋāĻāĻžāϝāĻŧ āĻ
āύā§āϤāϤ āϤāĻŋāύāĻŦāĻžāϰ āĻāϞā§āĻā§, āĻāϰ table-āĻ āĻāĻā§ āĻĒāϰāĻŋāϏāϰāĨ¤ Compiler Explorer āĻĒā§āϰāĻžāϝāĻŧ 20 āϏā§āĻā§āύā§āĻĄ āĻĒāϰ⧠program āĻĨāĻžāĻŽāĻŋāϝāĻŧā§ āĻĻā§āϝāĻŧāĨ¤
| āĻāĻĒāĻžāϝāĻŧ | Input | āϏāĻŽāϝāĻŧ, āĻĻā§āĻ session-āĻ |
|---|---|---|
ans = ans + piece | 10000 āĻ āĻā§āώāϰ | 2.7 āĻĨā§āĻā§ 5.8 ms |
ans = ans + piece | 25000 āĻ āĻā§āώāϰ | 36 āĻĨā§āĻā§ 50 ms |
ans = ans + piece | 50000 āĻ āĻā§āώāϰ | 289 āĻĨā§āĻā§ 475 ms |
ans = ans + piece | 100000 āĻ āĻā§āώāϰ | 1988 āĻĨā§āĻā§ 4325 ms |
ans = ans + piece | 200000 āĻ āĻā§āώāϰ | āĻāĻžāϰāĻāĻž run-āĻ 12642 āĻĨā§āĻā§ 14958 ms; āĻĻā§āĻāĻāĻž run āĻĒā§āϰāĻžāϝāĻŧ 20 āϏā§āĻā§āύā§āĻĄ āĻĒāϰ⧠āĻĨāĻžāĻŽāĻŋāϝāĻŧā§ āĻĻā§āĻāϝāĻŧāĻž āĻšāϝāĻŧā§āĻā§ |
ans = ans + piece | 500000 āĻ āĻā§āώāϰ, āϏāĻŦāĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧ test | āĻāϝāĻŧāĻŦāĻžāϰāĻ āĻĒā§āϰāĻžāϝāĻŧ 20 āϏā§āĻā§āύā§āĻĄ āĻĒāϰ⧠āĻĨāĻžāĻŽāĻŋāϝāĻŧā§ āĻĻā§āĻāϝāĻŧāĻž āĻšāϝāĻŧā§āĻā§ |
ans += piece | 500000 āĻ āĻā§āώāϰ, āϏāĻŦāĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧ test | 5.6 āĻĨā§āĻā§ 12.8 ms |
āĻĻā§āĻāĻāĻž version-āĻ āĻāĻāĻ āĻ āĻŋāĻ āĻāϤā§āϤāϰ print āĻāϰā§āĨ¤ āϏāĻŦāĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧ test-āĻ ans += piece-āĻāϰ āϞāĻžāĻā§ 5.6 āĻĨā§āĻā§ 12.8 ms, āĻāϰ āĻ
āύā§āϝ āĻāĻĒāĻžāϝāĻŧāĻāĻž Compiler Explorer-āĻ āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰāĻ āϏāĻŽāϝāĻŧ āĻĢā§āϰāĻŋāϝāĻŧā§ āĻĢā§āϞā§āĨ¤ āĻāĻ test run-length-āĻāϰ hidden set-āĻ āĻĨā§āĻā§ āϝāĻžāϝāĻŧ, āϤāĻžāĻ ans = ans + piece āĻĒāĻžāĻļ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āύāĻžāĨ¤ Loop-āĻāϰ āĻāĻŋāϤāϰ⧠āĻŦāĻžāĻĄāĻŧāϤ⧠āĻĨāĻžāĻāĻž āϝā§āĻā§āύ⧠āĻāϤā§āϤāϰā§āϰ āĻŦā§āϞāĻžāϝāĻŧ āĻāĻāĻ āĻāĻĨāĻžāĨ¤
āĻāĻ āĻĻāĻļāĻāĻž problem-āĻ āϝ⧠āϰā§āĻĒāĻā§āϞ⧠āϞāĻžāĻā§
cin >> word; one word: no spaces; false at the end of the input
getline(cin, line); a whole line, spaces kept, the line break dropped
cin >> n; getline(cin, line); finish the line that held n, then read lines
s.size() s[i] s.empty() length in bytes (ASCII: characters), char i, "is it empty?"
s.find(t) s.find(t, from) first index of t (from index from), or string::npos
s.substr(pos, len) len characters from pos; substr(pos) runs to the end
s += c; s += t; append at the end, where s already lives
to_string(x) stoi(t) stoll(t) number to text; text to int or long long
istringstream in(line); a line read like cin: in >> w gives its words
getline(in, part, ','); read up to the next comma, and drop the comma
isalnum((unsigned char)c) tolower((unsigned char)c) letters and digits; small letters
reverse(s.begin(), s.end()); the characters in the opposite order
- āύāĻŋāĻā§āϰ āĻĒā§āϰāϤāĻŋāĻāĻž starter āĻāĻā§ āĻĨā§āĻā§āĻ input āĻĒāĻĄāĻŧā§ āϰāĻžāĻā§āĨ¤ āĻāĻ āϞāĻžāĻāύāĻā§āϞ⧠āϝā§āĻŽāύ āĻāĻā§ āϤā§āĻŽāύ āϰāĻžāĻā§, āĻāϰ āύāĻŋāĻā§āϰ code āϞā§āĻā§ comment āϝā§āĻāĻžāύ⧠āĻŦāϞ⧠āϏā§āĻāĻžāύā§āĨ¤
istringstream-āĻāϰ āĻāύā§āϝ āϞāĻžāĻā§<sstream>,isalnumāĻāϰtolower-āĻāϰ āĻāύā§āϝ<cctype>, āĻāϰreverse-āĻāϰ āĻāύā§āϝ<algorithm>āĨ¤ Starter-āĻ āύāĻž āĻĨāĻžāĻāϞ⧠include-āĻāĻž āϝā§āĻ āĻāϰā§āĨ¤- Sample-āĻāϰ āĻāĻā§ āĻāĻŋāύāĻžāϰāĻžāĻā§āϞ⧠test āĻāϰā§: āĻāĻāĻāĻž word, āĻāĻāĻāĻž character, āĻā§āύ⧠āĻŽāĻŋāϞ āύāĻž āĻĨāĻžāĻāĻž, āĻļā§āϧ⧠space-āĻāϰ āĻāĻāĻāĻž āϞāĻžāĻāύ, āĻāϰ āϏāĻŦāĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧ inputāĨ¤
Alice āĻĻā§āĻāĻžāύā§āϰ āϏāĻžāĻāύāĻŦā§āϰā§āĻĄ āĻāĻāĻā§āĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž āĻŦā§āϰā§āĻĄā§āϰ āĻāύā§āϝ āĻāϰ āĻāĻžāύāĻž āĻĻāϰāĻāĻžāϰ character āĻāϝāĻŧāĻāĻž, āĻāϰ space āĻāϝāĻŧāĻāĻžāĨ¤
#include <iostream>
#include <string>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n = 0;
cin >> n;
string line;
getline(cin, line); // finish the line that held n
for (int i = 0; i < n; i++) {
getline(cin, line);
int spaces = 0;
for (char c : line) {
if (c == ' ') {
spaces++;
}
}
// ASCII text: size() is the number of characters.
cout << line.size() << " chars, " << spaces << " spaces\n";
}
return 0;
}
13 chars, 2 spaces
13 chars, 3 spaces
3 chars, 0 spaces
āĻāĻ output-āĻāĻž āϏā§āĻ input-āĻāϰ āĻāύā§āϝ, āϝā§āĻāĻžāύ⧠āĻāĻā§ 3, āϤāĻžāϰāĻĒāϰ āϤāĻŋāύāĻāĻž āĻŦā§āϰā§āĻĄ: OPEN 24 HOURS, āϏāĻžāĻŽāύ⧠āĻĻā§āĻāĻāĻž space-āϏāĻš Fresh bread, āĻāϰ TeaāĨ¤
getline āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āĻŦā§āϰā§āĻĄā§āϰ āϏāĻžāĻŽāύā§āϰ āĻĻā§āĻāĻāĻž space āϰā§āĻā§ āĻĻā§āϝāĻŧ, āϤāĻžāĻ āĻāϰāĻžāĻ āĻā§āύāĻž āĻšāϝāĻŧ: 13āĻāĻž character āĻāϰ 3āĻāĻž spaceāĨ¤ cin >> āĻšāϞ⧠āĻāĻā§āϞ⧠āĻĒāĻžāϰ āĻšāϝāĻŧā§ āϝā§āϤāĨ¤ āĻĒā§āϰāĻĨāĻŽ getline-āĻāĻž āĻŽā§āĻā§ āĻĻāĻŋāϞ⧠program āĻāĻā§ 0 character-āĻāϰ āĻāĻāĻāĻž āĻĢāĻžāĻāĻāĻž āĻŦā§āϰā§āĻĄā§āϰ āĻšāĻŋāϏāĻžāĻŦ āĻĻā§āϝāĻŧ, āϤāĻžāϰāĻĒāϰ Tea āĻĒāϰā§āϝāύā§āϤ āĻāϰ āĻĒā§āĻāĻāĻžāϝāĻŧāĻ āύāĻžāĨ¤
Zara āĻāϰ āĻĻā§āĻĄāĻŧā§āϰ āϏāĻŽāϝāĻŧ āϞāĻŋāĻā§ āϰāĻžāĻā§ minutes:seconds āĻāĻāĻžāϰā§āĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻŽāϝāĻŧ āϏā§āĻā§āύā§āĻĄā§ print āĻāϰā§, āĻāϰ āĻā§āύ⧠āϏāĻŽāϝāĻŧā§ colon āύāĻž āĻĨāĻžāĻāϞ⧠badāĨ¤
#include <iostream>
#include <string>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n = 0;
cin >> n;
for (int i = 0; i < n; i++) {
string t;
cin >> t;
// find returns a size_t: an index, or string::npos for no match.
size_t colon = t.find(':');
if (colon == string::npos) {
cout << "bad\n";
continue;
}
int minutes = stoi(t.substr(0, colon));
int seconds = stoi(t.substr(colon + 1));
cout << minutes * 60 + seconds << '\n';
}
return 0;
}
245
750
bad
āĻāĻ output-āĻāĻž āϏā§āĻ input-āĻāϰ āĻāύā§āϝ, āϝā§āĻāĻžāύ⧠āĻāĻā§ 3, āϤāĻžāϰāĻĒāϰ āĻāĻ āϞāĻžāĻāύ⧠āĻāĻāĻāĻž āĻāϰ⧠4:05, 12:30 āĻāϰ 90āĨ¤
4:05-āĻ colon āĻāĻā§ index 1-āĻāĨ¤ substr(0, colon) āύā§āϝāĻŧ āĻāϰ āĻāĻā§āϰ 1āĻāĻž character, āĻāϰ substr(colon + 1) āύā§āϝāĻŧ 05, āϝā§āĻāĻž stoi āĻĒāĻĄāĻŧā§ 5 āĻšāĻŋāϏā§āĻŦā§āĨ¤ 90-āĻ āĻā§āύ⧠colon āύā§āĻ, āϤāĻžāĻ find āĻĻā§āϝāĻŧ string::npos, āĻāϰ program āĻāĻŽāύ āĻāĻāĻāĻž position-āĻ āĻāĻžāĻāϤ⧠āϝāĻžāϝāĻŧ āύāĻž āϝā§āĻāĻžāϰ āĻ
āϏā§āϤāĻŋāϤā§āĻŦāĻ āύā§āĻ, āĻŦāϰāĻ āĻŦāϞ⧠badāĨ¤
David āĻāϰ āĻĻā§āĻāĻžāύā§āϰ page online āĻĻāĻŋāĻā§āĻā§āĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž page-āĻāϰ āύāĻžāĻŽ āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧ web address-āĻāϰ āĻāĻāĻāĻž āĻ
āĻāĻļ: āĻā§āĻ āĻšāĻžāϤā§āϰ āĻ
āĻā§āώāϰ, word-āĻā§āϞ⧠- āĻĻāĻŋāϝāĻŧā§ āĻā§āĻĄāĻŧāĻž, āĻŦāĻžāĻĄāĻŧāϤāĻŋ space āĻŦāĻžāĻĻāĨ¤
#include <cctype>
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n = 0;
cin >> n;
string line;
getline(cin, line); // finish the line that held n
for (int i = 0; i < n; i++) {
getline(cin, line);
istringstream in(line);
string word;
string slug;
while (in >> word) {
if (!slug.empty()) {
slug += '-';
}
for (char c : word) {
slug += (char)tolower((unsigned char)c);
}
}
cout << slug << '\n';
}
return 0;
}
fresh-bread-today
tea-and-cake
āĻāĻ output-āĻāĻž āϏā§āĻ input-āĻāϰ āĻāύā§āϝ, āϝā§āĻāĻžāύ⧠āĻāĻā§ 2, āϤāĻžāϰāĻĒāϰ Fresh Bread Today āĻāϰ Tea and CAKEāĨ¤
in >> word space-āĻāϰ āĻĒā§āϰāϤāĻŋāĻāĻž āĻĻāϞ āĻĒāĻžāϰ āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧ, āϤāĻžāĻ āĻŦāĻžāĻĄāĻŧāϤāĻŋ space āĻāĻāύ⧠slug-āĻ āĻĒā§āĻāĻāĻžāϝāĻŧ āύāĻžāĨ¤ Dash āĻŦāϏ⧠āĻļā§āϧ⧠āϤāĻāύ, āϝāĻāύ slug-āĻ āĻāĻā§ āĻĨā§āĻā§āĻ āĻāĻāĻāĻž word āĻāĻā§, āϤāĻžāĻ āĻļā§āϰā§āϤ⧠āĻā§āύ⧠dash āĻĨāĻžāĻā§ āύāĻžāĨ¤ tolower āĻĢā§āϰāϤ āĻĻā§āϝāĻŧ āĻāĻāĻāĻž int, āϤāĻžāĻ āĻāĻŦāĻžāϰ char-āĻ cast āĻāϰāϞ⧠+= āĻāĻāĻāĻž āĻ
āĻā§āώāϰāĻ āϝā§āĻ āĻāϰā§, āĻā§āύ⧠āϏāĻāĻā§āϝāĻž āύāĻžāĨ¤
āĻāĻāĻž āĻā§āĻĨāĻžāϝāĻŧ āĻāĻžāĻā§ āϞāĻžāĻā§
- Unix-āĻāϰ
sedcommandāĨ¤sed 's/cat/dog/g'āĻŦāĻžāĻ āĻĨā§āĻā§ āĻĄāĻžāύ⧠āĻĒā§āϰāϤāĻŋāĻāĻž āĻŽāĻŋāϞ āĻŦāĻĻāϞāĻžāϝāĻŧ, āĻāϰ āĻĒā§āϰāϤāĻŋāĻāĻžāϰ āĻĒāϰ⧠āϏāĻžāĻŽāύ⧠āĻāĻā§āϝāĻŧ, āύāĻŋāĻā§āϰ āĻŦāϏāĻžāύ⧠āĻ āĻāĻļā§ āĻāϰ āĻā§āĻāĻā§ āύāĻžāĨ¤ āĻāĻāĻžāĻreplace-word-āĻāϰ āύāĻŋāϝāĻŧāĻŽ, āĻāϰ GNU sed sample-āĻāĻžāĻā§ āĻ āĻŋāĻ āĻāĻāĻ āϞāĻžāĻāύ⧠āĻŦāĻĻāϞāĻžāϝāĻŧāĨ¤ - Python-āĻāϰ āϏāĻāĻā§āϝāĻž format āĻāϰāĻžāĨ¤
format(1234567, ",")āĻĢā§āϰāϤ āĻĻā§āϝāĻŧ1,234,567, āĻŽāĻžāύā§thousands-separator-āĻāϰ outputāĨ¤format(-1000, ",")sign-āĻāĻž āϏāĻžāĻŽāύā§āĻ āϰāĻžāĻā§:-1,000āĨ¤ - BMP image formatāĨ¤ āĻāϰ RLE8 compression pixel-āĻāϰ āĻāĻāĻāĻž āĻāĻžāύāĻž āĻĻāϞāĻā§ āϰāĻžāĻā§ āĻĻā§āĻāĻāĻž byte-āĻ: āĻāϝāĻŧāĻāĻž pixel, āϤāĻžāϰāĻĒāϰ āĻāĻĻā§āϰ āϏāĻŦāĻžāϰ āϰāĻāĨ¤ āĻāĻāĻž
run-length-āĻ, āĻļā§āϧ⧠count-āĻāĻž āĻĻāĻļāĻŽāĻŋāĻ digit āύāĻž āĻšāϝāĻŧā§ āĻāĻāĻāĻž byteāĨ¤ - CPython-āĻāϰ integerāĨ¤ Python āϝā§āĻā§āύ⧠āĻŽāĻžāĻĒā§āϰ integer āϝā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤ CPython āĻāĻāĻāĻž āĻŦāĻĄāĻŧ integer āϰāĻžāĻā§ 30-bit digit-āĻāϰ āĻāĻāĻāĻž array āĻšāĻŋāϏā§āĻŦā§āĨ¤ āĻĻā§āĻāĻāĻž āϝā§āĻ āĻāϰ⧠āĻāϞāĻžāĻŽ āϧāϰ⧠āϧāϰā§, āĻšāĻžāϤā§āϰ āϏāĻāĻā§āϝāĻžāϏāĻš, āĻ āĻŋāĻ āϝā§āĻāĻžāĻŦā§
big-addāĻāϰ⧠10-āĻāĻŋāϤā§āϤāĻŋāϤā§āĨ¤
āϝ⧠āĻā§āϞāĻā§āϞ⧠āϏāĻŦāĻžāĻ āĻāϰā§
ā§§. cin >> n-āĻāϰ āĻ āĻŋāĻ āĻĒāϰā§āĻ āϞāĻžāĻāύ āĻĒāĻĄāĻŧāĻžāĨ¤
int n = 0;
cin >> n;
string line;
for (int i = 0; i < n; i++) {
getline(cin, line);
āĻā§āύ⧠command line-āĻāĻ āĻŦāĻžāϰā§āϤāĻž āύā§āĻāĨ¤ āĻĒā§āϰāĻĨāĻŽ getline āĻĒāĻĄāĻŧā§ n-āĻāϝāĻŧāĻžāϞāĻž āϞāĻžāĻāύā§āϰ āĻŦāĻžāĻāĻŋāĻāĻž, āϝā§āĻāĻž āĻĢāĻžāĻāĻāĻžāĨ¤ reverse-words-āĻāϰ sample-āĻ Compiler Explorer-āĻ āĻāĻāĻŦāĻžāϰ āĻāĻžāϞāĻžāϤ⧠print āĻšāϝāĻŧā§āĻā§ āĻāĻāĻāĻž āĻĢāĻžāĻāĻāĻž āϞāĻžāĻāύ, āϤāĻžāϰāĻĒāϰ fox brown quick the āĻāϰ cases edge tests ZaraāĨ¤ āĻĢāĻžāĻāĻāĻž āϞāĻžāĻāύāĻāĻž āĻĒā§āϰāĻĨāĻŽ āϞāĻžāĻāύā§āϰ āĻĢāĻžāĻāĻāĻž āĻŦāĻžāĻāĻŋ āĻ
āĻāĻļā§āϰ, āĻāϰ hello āĻĒāϰā§āϝāύā§āϤ āĻĒā§āĻāĻāĻžāύā§āĻ āĻšāϝāĻŧāύāĻŋāĨ¤ āĻāĻā§ āĻāĻāĻāĻž getline(cin, line); āĻĻāĻŋāϝāĻŧā§ āϞāĻžāĻāύāĻāĻž āĻļā§āώ āĻāϰā§āĨ¤
⧍. Minus āĻāĻŋāĻšā§āύāĻā§ digit āĻšāĻŋāϏā§āĻŦā§ āĻā§āύāĻžāĨ¤
string s = to_string(x);
int len = (int)s.size();
for (int j = 0; j < len; j++) {
if (j > 0 && (len - j) % 3 == 0) {
out += ',';
}
out += s[j];
}
āĻā§āύ⧠command line-āĻāĻ āĻŦāĻžāϰā§āϤāĻž āύā§āĻ, āĻāϰ 1000 āĻāϰ -1000 āĻĻā§āĻāĻāĻžāĻ āĻ āĻŋāĻ āĻāϏā§āĨ¤ -123-āĻāϰ āĻāύā§āϝ Compiler Explorer-āĻ āĻāĻāĻŦāĻžāϰ āĻāĻžāϞāĻžāϤ⧠print āĻšāϝāĻŧā§āĻā§ -,123, āĻāϰ -123456-āĻāϰ āĻāύā§āϝ -,123,456āĨ¤ - length-āĻā§ āĻāĻ āĻŦāĻžāĻĄāĻŧāĻŋāϝāĻŧā§ āĻĻāĻŋāϝāĻŧā§āĻā§, āϤāĻžāĻ āĻ āĻŋāĻ āĻāϰ āĻĒāϰā§āĻ āĻāĻāĻāĻž comma āĻŦāϏ⧠āĻā§āĻā§āĨ¤ āĻāĻā§ sign āĻāϞāĻžāĻĻāĻž āĻāϰā§, digit-āĻā§āϞā§āϤ⧠comma āĻŦāϏāĻžāĻ, āϤāĻžāϰāĻĒāϰ sign āĻāĻŦāĻžāϰ āϏāĻžāĻŽāύ⧠āĻĻāĻžāĻāĨ¤
ā§Š. 100000 digit-āĻāϰ āϏāĻāĻā§āϝāĻžāϝāĻŧ stollāĨ¤
cout << stoll(a) + stoll(b) << '\n';
āĻā§āύ⧠āĻāĻĨāĻž āĻāĻžāĻĄāĻŧāĻžāĻ compile āĻšāϝāĻŧ, āĻāϰ sample, 958 āĻāϰ 67, āĻĒāĻžāĻļāĻ āĻāϰā§āĨ¤ āĻĒā§āϰāĻĨāĻŽ āϏāĻāĻā§āϝāĻž āĻŦāĻŋāĻļāĻāĻž 9 āĻšāϞ⧠Compiler Explorer-āĻ āĻāĻāĻŦāĻžāϰ āĻāĻžāϞāĻžāϤ⧠program āĻĨā§āĻŽā§āĻā§ stderr-āĻ āĻāĻāĻž āϞāĻŋāĻā§: terminate called after throwing an instance of 'std::out_of_range', āϤāĻžāϰāĻĒāϰ what(): stollāĨ¤ Text āĻāĻāĻāĻž long long-āĻāϰ āĻāύā§āϝ āĻŦā§āĻļāĻŋ āĻŦāĻĄāĻŧ āĻšāϞ⧠stoll throw āĻāϰā§āĨ¤ Digit-āĻā§āϞ⧠āύāĻŋāĻā§ āϝā§āĻ āĻāϰā§, āĻāĻ āĻāϞāĻžāĻŽ āĻāϰā§āĨ¤
ā§Ē. āĻāĻāĻŽāĻžāϤā§āϰ āĻŦāϏāĻžāύ⧠āĻā§āĻāϰā§āϰ āĻāĻŋāϤāϰā§āĻ āĻāĻŦāĻžāϰ āĻā§āĻāĻāĻžāĨ¤
size_t pos = text.find(from);
while (pos != string::npos) {
text.replace(pos, from.size(), to);
count++;
pos = text.find(from, pos + 1);
}
āĻā§āύ⧠command line-āĻāĻ āĻŦāĻžāϰā§āϤāĻž āύā§āĻ, āĻāϰ cat āĻāϰ dog-āĻāϰ sample āĻĒāĻžāĻļ āĻāϰā§āĨ¤ banana-āϤ⧠a āĻāϰ aa āĻĻāĻŋāϞā§, āĻĒā§āϰāϤāĻŋāĻāĻž āĻŦāϏāĻžāύ⧠aa-āϰ pos + 1-āĻ āĻāĻāĻāĻž āύāϤā§āύ a āĻĨāĻžāĻā§, āϤāĻžāĻ text āĻŦāĻžāĻĄāĻŧāϤā§āĻ āĻĨāĻžāĻā§āĨ¤ Compiler Explorer-āĻ āĻāĻāĻŦāĻžāϰ āĻāĻžāϞāĻžāϤ⧠āĻāĻŋāĻā§āĻ print āĻšāϝāĻŧāύāĻŋ, āĻāϰ āĻĒā§āϰāĻžāϝāĻŧ 6 āϏā§āĻā§āύā§āĻĄ āĻĒāϰ⧠program-āĻāĻž kill āĻšāϝāĻŧā§āĻā§āĨ¤ āĻāĻŦāĻžāϰ āĻā§āĻāĻā§ pos + to.size() āĻĨā§āĻā§, āύāϝāĻŧāϤ⧠āĻāĻāĻāĻž āύāϤā§āύ string āĻāĻĄāĻŧā§ āĻāϰ āĻā§āĻāĻā§ āĻļā§āϧ⧠āĻĒā§āϰāύā§āĻāĻžāϝāĻŧāĨ¤
Zara āĻāĻžāύāϤ⧠āĻāĻžāϝāĻŧ Bob-āĻāϰ āĻā§āϰāĻžāϰ note-āĻ āϏāĻŦāĻā§āϝāĻŧā§ āϞāĻŽā§āĻŦāĻž word āĻā§āύāĻāĻž, āĻāϰ āĻāϰ lengthāĨ¤ Word āĻŽāĻžāύ⧠space āĻāĻžāĻĄāĻŧāĻž character-āĻāϰ āϝā§āĻā§āύ⧠āĻāĻžāύāĻž āϏāĻžāϰāĻŋ, āϤāĻžāĻ āĻā§āύ⧠word-āĻāϰ āĻāĻžāϝāĻŧā§ āϞā§āĻā§ āĻĨāĻžāĻāĻž comma-āĻ āĻāϰ āĻ āĻāĻļāĨ¤
Input. Space āĻŦāĻž āύāϤā§āύ āϞāĻžāĻāύ āĻĻāĻŋāϝāĻŧā§ āĻāϞāĻžāĻĻāĻž word, input āĻļā§āώ āύāĻž āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤāĨ¤ āĻļā§āϰā§āϤ⧠āĻā§āύ⧠count āύā§āĻāĨ¤
Output. āĻāĻ āϞāĻžāĻāύā§: āϏāĻŦāĻā§āϝāĻŧā§ āϞāĻŽā§āĻŦāĻž word, āĻāĻāĻāĻž space, āĻāϰ āĻāϰ lengthāĨ¤ āϏāĻŽāĻžāύ āĻšāϞā§, āϏāĻŦāĻā§āϝāĻŧā§ āϞāĻŽā§āĻŦāĻžāĻā§āϞā§āϰ āĻŽāϧā§āϝ⧠āĻĒā§āϰāĻĨāĻŽāĻāĻžāĨ¤
Constraints. 1 āĻĨā§āĻā§ 100000āĻāĻž word, āĻĒā§āϰāϤāĻŋāĻāĻžāϝāĻŧ 1 āĻĨā§āĻā§ 100āĻāĻž ASCII character; āĻĒā§āϰ⧠input āĻŦāĻĄāĻŧāĻā§āϰ 1000000 byteāĨ¤
Sample. Input Bob packs maps, snacks and a camera for the trip āĻĻāĻŋāϞ⧠snacks 6āĨ¤
#include <iostream>
#include <string>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
string word;
while (cin >> word) {
// Keep the longest word seen so far.
// Replace it only when this word is strictly longer.
}
// Print the longest word, a space, and its length.
return 0;
}
Run in Compiler
Hint 1
Sample-āĻ 6 character-āĻāϰ word āĻĻā§āĻāĻāĻžāĨ¤ āύāϤā§āύ āĻāĻāĻāĻž word āϝāĻĻāĻŋ āĻāĻāύ āĻĒāϰā§āϝāύā§āϤ āϏāĻŦāĻā§āϝāĻŧā§ āϞāĻŽā§āĻŦāĻžāĻāĻžāϰ āĻ āĻŋāĻ āϏāĻŽāĻžāύ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧠āĻā§ āĻšāĻāϝāĻŧāĻžāϰ āĻāĻĨāĻž?
Hint 2
āϏāĻŦāĻā§āϝāĻŧā§ āϞāĻŽā§āĻŦāĻž word-āĻāĻž āϰāĻžāĻā§ āĻāĻāĻāĻž string-āĻ, āϝā§āĻāĻž āĻļā§āϰā§āϤ⧠āĻĢāĻžāĻāĻāĻžāĨ¤ āύāϤā§āύ word-āĻāϰ size āϏāϤā§āϝāĻŋāĻ āĻŦāĻĄāĻŧ āĻšāϞ⧠āϤāĻŦā§āĻ āĻŦāĻĻāϞāĻžāĻāĨ¤ Loop-āĻāϰ āĻĒāϰ⧠āϏāĻŦāĻā§āϝāĻŧā§ āϞāĻŽā§āĻŦāĻž word, āĻāĻāĻāĻž space āĻāϰ āĻāϰ size print āĻāϰā§āĨ¤
Solution
āϏāĻŦāĻā§āϝāĻŧā§ āϞāĻŽā§āĻŦāĻž word āĻļā§āϰ⧠āĻšāϝāĻŧ āĻĢāĻžāĻāĻāĻž āĻ
āĻŦāϏā§āĻĨāĻžāϝāĻŧ, size 0, āĻāϰ āĻĒā§āϰāϤāĻŋāĻāĻž word-āĻ āĻ
āύā§āϤāϤ āĻāĻāĻāĻž character āĻĨāĻžāĻā§, āϤāĻžāĻ āĻĒā§āϰāĻĨāĻŽ word āϏāĻŦāϏāĻŽāϝāĻŧ āĻāϰ āĻāĻžāϝāĻŧāĻāĻž āύā§āϝāĻŧāĨ¤ āĻĒāϰ⧠āĻŦāĻĻāϞāĻžāϝāĻŧ āĻļā§āϧ⧠āϏāϤā§āϝāĻŋāĻ āϞāĻŽā§āĻŦāĻž āĻā§āύ⧠word, āϤāĻžāĻ āϏāĻŽāĻžāύ word-āĻā§āϞā§āϰ āĻŽāϧā§āϝ⧠āĻĒā§āϰāĻĨāĻŽāĻāĻžāĻ āĻĨā§āĻā§ āϝāĻžāϝāĻŧāĨ¤ cin >> word space āĻāϰ āύāϤā§āύ āϞāĻžāĻāύā§āϰ āϝā§āĻā§āύ⧠āĻŽāĻŋāĻļā§āϞ āĻĒāĻžāϰ āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧāĨ¤ Input ASCII, āϤāĻžāĻ size() āĻŽāĻžāύā§āĻ lengthāĨ¤
>= āĻĻāĻŋāϝāĻŧā§ āĻŦāĻĻāϞāĻžāϞ⧠āϏāĻŽāĻžāύāĻĻā§āϰ āĻŽāϧā§āϝ⧠āĻļā§āώāĻāĻž āĻĨāĻžāĻā§, āĻāϰ sample-āĻ print āĻšāϝāĻŧ camera 6āĨ¤ Hidden test-āĻ āĻāĻā§ āĻāĻ character-āĻāϰ āĻāĻāĻāĻžāĻ word, āĻāϰ 100 character-āĻāϰ āĻāĻāĻāĻžāĻ wordāĨ¤ āĻāϰāĻ āĻāĻā§ āĻ
āύā§āĻ āϞāĻžāĻāύ āĻā§āĻĄāĻŧā§ āϏāĻŽāĻžāύ āϞāĻŽā§āĻŦāĻž word, āύāϤā§āύ āϞāĻžāĻāύ āĻāĻžāĻĄāĻŧāĻž āĻāĻāĻĻāĻŽ āĻļā§āώ⧠āϏāĻŦāĻā§āϝāĻŧā§ āϞāĻŽā§āĻŦāĻž word, āĻāϰ āĻāĻ character-āĻāϰ 100000āĻāĻž wordāĨ¤
Alice-āĻāϰ club-āĻāϰ sign-up list-āĻāϰ āĻĒā§āϰāϤāĻŋāĻāĻž address āĻĻā§āĻ āĻāĻžāĻ āĻāϰāĻž āĻĻāϰāĻāĻžāϰ: @-āĻāϰ āĻāĻā§āϰ user name āĻāϰ āĻĒāϰā§āϰ domaināĨ¤
Input. n, āϤāĻžāϰāĻĒāϰ n-āĻāĻž email address, āĻĒā§āϰāϤāĻŋ āϞāĻžāĻāύ⧠āĻāĻāĻāĻžāĨ¤
Output. āĻĒā§āϰāϤāĻŋāĻāĻž address-āĻāϰ āĻāύā§āϝ āĻāĻ āϞāĻžāĻāύ: @-āĻāϰ āĻāĻā§āϰ āĻ
āĻāĻļ, āĻāĻāĻāĻž space, āĻāϰ āĻĒāϰā§āϰ āĻ
āĻāĻļāĨ¤
Constraints. 1 <= n <= 20000; āĻĒā§āϰāϤāĻŋāĻāĻž address-āĻ āĻŦāĻĄāĻŧāĻā§āϰ 100āĻāĻž ASCII character, āĻā§āύ⧠space āύā§āĻ, āĻ āĻŋāĻ āĻāĻāĻāĻž @, āĻāϰ āĻāϰ āĻĻā§āĻ āĻĒāĻžāĻļā§ āĻ
āύā§āϤāϤ āĻāĻāĻāĻž āĻāϰ⧠characterāĨ¤
Sample. Input 3, maria@school.example, bob.rahman@mail.example.com āĻāϰ z@x.io āĻĻāĻŋāϞ⧠āϤāĻŋāύ āϞāĻžāĻāύ⧠maria school.example, bob.rahman mail.example.com āĻāϰ z x.ioāĨ¤
#include <iostream>
#include <string>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n = 0;
cin >> n;
for (int i = 0; i < n; i++) {
string email;
cin >> email;
// Find the '@'. Print the part before it, a space,
// and the part after it, on one line.
}
return 0;
}
Run in Compiler
Hint 1
z@x.io-āϤ⧠@ āĻāĻā§ index 1-āĻāĨ¤ āĻāϰ āĻāĻā§ character āĻāϝāĻŧāĻāĻž?
Hint 2
@-āĻāϰ index āĻā§āĻāĻā§ āĻŦā§āϰ āĻāϰā§āĨ¤ User name āĻšāϞ⧠0 āĻĨā§āĻā§ āĻļā§āϰ⧠āĻšāĻāϝāĻŧāĻž āĻ āĻŋāĻ āĻ
āϤāĻā§āϞ⧠character-āĻāϰ substringāĨ¤ Domain āĻšāϞ⧠@-āĻāϰ āĻāĻ āĻāϰ āĻĒāϰ āĻĨā§āĻā§ āĻļā§āώ āĻĒāϰā§āϝāύā§āϤ substringāĨ¤
Solution
find('@') āĻĻā§āϝāĻŧ @-āĻāϰ index, āĻāϰ āĻāĻ index-āĻ āĻāϰ āĻāĻā§āϰ character-āĻāϰ āϏāĻāĻā§āϝāĻžāĨ¤ pos 0 āĻĻāĻŋāϝāĻŧā§ substr(pos, len) āĻ āĻŋāĻ āĻāĻā§āϞā§āĻ āύā§āϝāĻŧ, āĻāϰ @-āĻāϰ āĻāĻ āĻāϰ āĻĒāϰ āĻĨā§āĻā§ substr(pos) āύā§āϝāĻŧ āĻŦāĻžāĻāĻŋāĻāĻžāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž address-āĻ āĻāĻāĻāĻž @ āĻāĻā§, āϤāĻžāĻ āĻāĻāĻžāύ⧠string::npos āĻāĻāύ⧠āĻĢā§āϰāϤ āĻāϏ⧠āύāĻžāĨ¤ āĻāĻ āĻāĻĨāĻž āĻĻā§āĻāϝāĻŧāĻž āύāĻž āĻĨāĻžāĻāϞ⧠āĻāĻā§ āĻāĻāĻž check āĻāϰā§, āϝā§āĻŽāύ Example 2 āĻāϰā§āĨ¤
Domain āϝāĻĻāĻŋ @ āĻĨā§āĻā§āĻ āĻļā§āϰ⧠āĻāϰā§, print āĻšāϝāĻŧ maria @school.exampleāĨ¤ āĻāĻāĻāĻž character āĻāĻŽ āύāĻŋāϞ⧠āĻĒā§āϰāϤāĻŋāĻāĻž user name-āĻāϰ āĻļā§āώ āĻ
āĻā§āώāϰ āĻāĻžāĻāĻž āĻĒāĻĄāĻŧā§āĨ¤ Hidden test @-āĻā§ āĻŦāϏāĻžāϝāĻŧ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āĻāϰ āĻļā§āώā§āϰ āĻāĻā§āϰ āĻāϰā§, āĻāϰ +, _ āĻāϰ ~-āĻāϰ āĻŽāϤ⧠āĻāĻŋāĻšā§āύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤ āĻāĻāĻāĻžāϝāĻŧ āĻāĻā§ 100 character-āĻāϰ 10000āĻāĻž address, 1 MB-āĻāϰ āĻāĻāĻā§ āĻŦā§āĻļāĻŋāĨ¤
Amara-āϰ text editor-āĻ find-and-replace āϞāĻžāĻāĻŦā§āĨ¤ Text-āĻ from āϝāϤāĻŦāĻžāϰ āĻāĻā§, āĻĒā§āϰāϤāĻŋāĻāĻžāĻā§ to āĻĻāĻŋāϝāĻŧā§ āĻŦāĻĻāϞāĻžāĻ, āĻŦāĻžāĻ āĻĨā§āĻā§ āĻĄāĻžāύ⧠āĻĒāĻĄāĻŧāϤ⧠āĻĒāĻĄāĻŧāϤā§, āĻāϰ āĻāϝāĻŧāĻŦāĻžāϰ āĻŦāĻĻāϞāĻžāϞ⧠āĻā§āύā§āĨ¤ āĻāĻāĻŽāĻžāϤā§āϰ āĻŦāϏāĻžāύ⧠āĻā§āĻāϰā§āϰ āĻāĻŋāϤāϰ⧠āĻāĻāύ⧠āĻā§āĻāĻāĻŦā§ āύāĻž, āĻāϰ āĻĻā§āĻāĻāĻž āĻŽāĻŋāϞ āĻāĻāĻāĻžāϰ āĻāĻĒāϰ āĻāϰā§āĻāĻāĻž āĻĒāĻĄāĻŧāϞ⧠āĻŦāĻžāĻāϝāĻŧā§āϰāĻāĻž āĻāĻā§: aaa-āϤ⧠aa āĻāϰ b āĻĻāĻŋāϞ⧠ba āĻāϰ 1āĨ¤
Input. āϞāĻžāĻāύ 1: text, āϝāĻžāϤ⧠space āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰā§āĨ¤ āϞāĻžāĻāύ 2: fromāĨ¤ āϞāĻžāĻāύ 3: toāĨ¤
Output. āϞāĻžāĻāύ 1-āĻ āύāϤā§āύ text, āĻāϰ āϞāĻžāĻāύ 2-āĻ āĻāϝāĻŧāĻŦāĻžāϰ āĻŦāĻĻāϞāĻžāύ⧠āĻšāϞā§āĨ¤
Constraints. Text-āĻ 1 āĻĨā§āĻā§ 100000āĻāĻž ASCII character; from āĻāϰ to-āĻāϰ āĻĒā§āϰāϤāĻŋāĻāĻžāϝāĻŧ 1 āĻĨā§āĻā§ 10āĻāĻž character, āĻā§āύ⧠space āύā§āĻāĨ¤
Sample. Input I like cats. My cat likes catnip., cat āĻāϰ dog āĻĻāĻŋāϞ⧠āĻĻā§āĻ āϞāĻžāĻāύ⧠I like dogs. My dog likes dognip. āĻāϰ 3āĨ¤
#include <iostream>
#include <string>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
string text, from, to;
getline(cin, text);
getline(cin, from);
getline(cin, to);
// Replace every occurrence of from in text, left to right.
// Never search inside a piece you have just put in.
// Print the new text, then the number of replacements, on two lines.
return 0;
}
Run in Compiler
Hint 1
banana-āϤ⧠a āĻāϰ aa āĻĻāĻŋāϝāĻŧā§ āĻāĻžāĻāĻā§ āĻāϰ⧠āĻĻā§āĻā§āĨ¤ āĻāĻāĻŦāĻžāϰ āĻŦāĻĻāϞāĻžāύā§āϰ āĻĒāϰ⧠āĻĒāϰā§āϰ āĻā§āĻāĻāĻž āĻā§āĻĨāĻž āĻĨā§āĻā§ āĻļā§āϰ⧠āĻšāĻāϝāĻŧāĻžāϰ āĻāĻĨāĻž?
Hint 2
āĻāĻāĻāĻž āύāϤā§āύ string āĻāĻĄāĻŧā§, āĻāϰ āĻā§āĻāĻā§ āĻļā§āϧ⧠āĻāϏāϞ text-āĻāĨ¤ āĻāĻāύāĻāĻžāϰ position āĻĨā§āĻā§ āĻĒāϰā§āϰ āĻŽāĻŋāϞāĻāĻž āĻā§āĻāĻā§āĨ¤ āĻāϰ āĻāĻā§āϰ text āĻāϰ āύāϤā§āύ āĻā§āĻāϰā§āĻāĻž āϝā§āĻ āĻāϰā§, āĻāĻāĻŦāĻžāϰ āĻā§āύā§, āϤāĻžāϰāĻĒāϰ position-āĻā§ āĻĒā§āϰ⧠āĻŽāĻŋāϞā§āϰ āĻĒāϰ⧠āϏāϰāĻžāĻāĨ¤ āĻā§āĻāĻāĻžāϝāĻŧ āĻāĻŋāĻā§ āύāĻž āĻĒā§āϞ⧠āĻŦāĻžāĻāĻŋāĻāĻž āϝā§āĻ āĻāϰā§āĨ¤
David-āĻāϰ āĻšāĻŋāϏāĻžāĻŦā§āϰ āĻŽā§āĻāĻā§āϞ⧠āĻĒāĻĄāĻŧāϤ⧠āĻāώā§āĻ āĻšāϝāĻŧāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻāĻā§āϝāĻž print āĻāϰ⧠āĻĄāĻžāύ āĻĨā§āĻā§ āĻā§āύ⧠āĻĒā§āϰāϤāĻŋ āϤāĻŋāύ digit-āĻ āĻāĻāĻāĻž comma āĻĻāĻŋāϝāĻŧā§āĨ¤ Minus āĻāĻŋāĻšā§āύ āĻĨāĻžāĻā§ āϏāĻžāĻŽāύā§āĻ, āϝā§āĻŽāύ -1,000, āĻāϰ 0 print āĻšāϝāĻŧ 0āĨ¤
Input. n, āϤāĻžāϰāĻĒāϰ n-āĻāĻž āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻž, āĻĒā§āϰāϤāĻŋ āϞāĻžāĻāύ⧠āĻāĻāĻāĻžāĨ¤
Output. āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻāĻā§āϝāĻž āύāĻŋāĻā§āϰ āϞāĻžāĻāύā§, āĻāϰ comma-āϏāĻšāĨ¤
Constraints. 1 <= n <= 20000, āĻāϰ āĻĒā§āϰāϤāĻŋāĻāĻž āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻž -1018 āĻĨā§āĻā§ 1018-āĻāϰ āĻŽāϧā§āϝā§āĨ¤
Sample. Input 5, 0, 999, 1000, -1234567 āĻāϰ 1000000000000000000 āĻĻāĻŋāϞ⧠āĻĒāĻžāĻāĻ āϞāĻžāĻāύ⧠0, 999, 1,000, -1,234,567 āĻāϰ 1,000,000,000,000,000,000āĨ¤
#include <iostream>
#include <string>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n = 0;
cin >> n;
for (int i = 0; i < n; i++) {
long long x = 0;
cin >> x;
// Turn x into text with to_string. Print it with a comma
// between every group of three digits, counted from the right.
// A minus sign stays in front, with no comma after it.
}
return 0;
}
Run in Compiler
Hint 1
-1234567-āĻāϰ āĻāύā§āϝ to_string āĻā§ āĻĻā§āϝāĻŧ, āĻāϰ āĻāϰ āĻĒā§āϰāĻĨāĻŽ character-āĻāĻž āĻāĻŋ āĻāĻāĻāĻž digit?
Hint 2
Minus āĻāĻŋāĻšā§āύāĻāĻž āĻāϞāĻžāĻĻāĻž āĻāϰ⧠āϰāĻžāĻā§, āĻļā§āϧ⧠digit-āĻā§āϞ⧠āϰāĻžāĻā§āĨ¤ āĻŦāĻžāĻ āĻĨā§āĻā§ āĻāĻĻā§āϰ āĻāĻĒāϰ āĻĻāĻŋāϝāĻŧā§ āĻšāĻžāĻāĻā§āĨ¤ āĻĒā§āϰāĻĨāĻŽāĻāĻž āĻŦāĻžāĻĻā§ āĻĒā§āϰāϤāĻŋāĻāĻž digit-āĻāϰ āĻāĻā§ āĻāĻāĻāĻž comma āĻŦāϏāĻžāĻ, āϝāĻĻāĻŋ āĻāĻ digit āĻĨā§āĻā§ āĻļā§āώ āĻĒāϰā§āϝāύā§āϤ digit-āĻāϰ āϏāĻāĻā§āϝāĻž 3-āĻāϰ āĻā§āĻŖāĻŋāϤāĻ āĻšāϝāĻŧāĨ¤ āĻļā§āώ⧠sign-āĻāĻž āĻāĻŦāĻžāϰ āϏāĻžāĻŽāύ⧠āĻŦāϏāĻžāĻāĨ¤
Maria āĻāĻžāύāϤ⧠āĻāĻžāϝāĻŧ āĻāĻāĻāĻž text āĻā§āύ āĻā§āύ āĻ āĻā§āώāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤ a āĻĨā§āĻā§ z āĻĒāϰā§āϝāύā§āϤ āĻ āĻā§āώāϰ āĻā§āύā§, āĻŦāĻĄāĻŧ āĻšāĻžāϤā§āϰ āĻ āĻā§āώāϰ āĻāϰ āĻā§āĻ āĻšāĻžāϤā§āϰāĻāĻž āĻšāĻŋāϏā§āĻŦā§āĨ¤ Digit, space āĻāϰ āĻŦāĻŋāϰāĻžāĻŽāĻāĻŋāĻšā§āύ āĻ āĻā§āώāϰ āύāĻžāĨ¤
Input. āĻāĻ āĻŦāĻž āĻāĻāĻžāϧāĻŋāĻ āϞāĻžāĻāύā§āϰ text, input āĻļā§āώ āύāĻž āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤāĨ¤
Output. āϝ⧠āĻ
āĻā§āώāϰ āĻāϏā§āĻā§ āϤāĻžāϰ āĻĒā§āϰāϤāĻŋāĻāĻžāϰ āĻāύā§āϝ āĻāĻ āϞāĻžāĻāύ, a āĻĨā§āĻā§ z āĻā§āϰāĻŽā§: āĻ
āĻā§āώāϰāĻāĻž, āĻāĻāĻāĻž space, āĻāϰ countāĨ¤ āĻā§āύ⧠āĻ
āĻā§āώāϰāĻ āύāĻž āĻāϞ⧠none āĻļāĻŦā§āĻĻāĻāĻžāĨ¤
Constraints. Text āĻŦāĻĄāĻŧāĻā§āϰ 1000000 byte-āĻāϰ ASCIIāĨ¤
Sample. Input Hello, World! āĻāϰ Zara 2026 āĻĻāĻŋāϞ⧠āύāϝāĻŧāĻāĻž āϞāĻžāĻāύ: a 2, d 1, e 1, h 1, l 3, o 2, r 2, w 1 āĻāϰ z 1āĨ¤
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
vector<int> count(26, 0);
string line;
while (getline(cin, line)) {
// For every letter of the line, turn a capital into a small
// letter, then add 1 to count[letter - 'a'].
}
// For each letter from a to z that appears, print the letter,
// a space and its count. Print "none" if no letter appears.
return 0;
}
Run in Compiler
Hint 1
'a' - 'a' āĻšāϞ⧠0, āĻāϰ 'z' - 'a' āĻšāϞ⧠25āĨ¤ 'A' āĻāϰ 'a'-āĻāϰ āĻŽāϧā§āϝ⧠āĻĻā§āϰāϤā§āĻŦ āĻāϤ?
Hint 2
āĻĒā§āϰāϤāĻŋāĻāĻž character-āĻāϰ āĻāύā§āϝ, āĻŦāĻĄāĻŧ āĻšāĻžāϤā§āϰ āĻ āĻā§āώāϰāĻā§ āĻāϰ āĻā§āĻ āĻšāĻžāϤā§āϰāĻāĻž āĻŦāĻžāύāĻžāĻ, āϤāĻžāϰāĻĒāϰ āĻā§āĻ āĻšāĻžāϤā§āϰ āĻ āĻā§āώāϰ āĻšāϞ⧠āĻāϰ counter-āĻ 1 āϝā§āĻ āĻāϰā§āĨ¤ āĻļā§āώ⧠26āĻāĻž counter-āĻāϰ āĻāĻĒāϰ āĻĻāĻŋāϝāĻŧā§ āĻā§āϰāĻŽāĻŽāϤ⧠āĻšāĻžāĻāĻā§, 0-āĻāϰ āĻŦā§āĻļāĻŋāĻā§āϞ⧠print āĻāϰā§, āĻāϰ āĻŽāύ⧠āϰāĻžāĻā§ āĻāĻŋāĻā§ print āĻšāϞ⧠āĻāĻŋ āύāĻžāĨ¤
Solution
ASCII-āϤ⧠'A' āĻĨā§āĻā§ 'Z' āĻāϰ 'a' āĻĨā§āĻā§ 'z' āĻĻā§āĻāĻāĻžāĻ āĻāĻžāύāĻž āϏāĻžāϰāĻŋ, 32 āĻāϰ āĻĻā§āϰā§āĨ¤ āϤāĻžāĻ 'a' - 'A' āϝā§āĻ āĻāϰāϞ⧠āĻŦāĻĄāĻŧ āĻšāĻžāϤā§āϰ āĻ
āĻā§āώāϰ āĻā§āĻ āĻšāϝāĻŧ, āĻāϰ c - 'a' āĻšāϞ⧠counter-āĻāϰ indexāĨ¤ Counter-āĻā§āϞā§āϰ āĻāĻĒāϰ āĻĻāĻŋāϝāĻŧā§ 0 āĻĨā§āĻā§ 25 āĻšāĻžāĻāĻāϞ⧠a āĻĨā§āĻā§ z print āĻšāϝāĻŧ, āĻā§āύ⧠sort āĻāĻžāĻĄāĻŧāĻžāĻāĨ¤ āĻĒā§āϰāĻĨāĻŽ print-āĻ āĻāĻāĻāĻž flag āĻŦāϏāĻŋāϝāĻŧā§ āϰāĻžāĻāϞā§āĻ none-āĻāϰ āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧāĨ¤
char-āĻ cast āύāĻž āĻāϰ⧠'a' + k print āĻāϰāϞ⧠āĻāϏ⧠97, āĻāĻžāϰāĻŖ āϝā§āĻāĻĢāϞāĻāĻž āĻāĻāĻāĻž intāĨ¤ Range check āĻāĻ āĻāϰ āĻā§āϞ āĻšāϞ⧠āĻā§āύāĻž āĻšāϝāĻŧ @, [, ` āĻŦāĻž {, āĻ
āĻā§āώāϰāĻā§āϞā§āϰ āĻ āĻŋāĻ āĻĒāĻžāĻļā§āϰ characterāĨ¤ Hidden test-āĻ āĻ āĻŋāĻ āĻāĻā§āϞā§āĻ āĻāĻā§, āϏāĻžāĻĨā§ āĻā§āύ⧠āĻ
āĻā§āώāϰāĻ āύāĻž āĻĨāĻžāĻāĻž text, āĻĢāĻžāĻāĻāĻž āϞāĻžāĻāύ, a-āĻāϰ 999000āĻāĻž copy, āĻāϰ āύāϤā§āύ āϞāĻžāĻāύ āĻāĻžāĻĄāĻŧāĻž āĻļā§āώ āϞāĻžāĻāύāĨ¤
Kenji āĻā§āϞāĻžāϏā§āϰ mark export āĻāϰā§āĻā§ name,mark1,mark2,mark3 āĻāĻāĻžāϰā§āϰ CSV āϞāĻžāĻāύ āĻšāĻŋāϏā§āĻŦā§āĨ¤ āύāĻžāĻŽā§āϰ āĻāĻŋāϤāϰ⧠āĻāĻāĻāĻž āĻāϰ⧠space āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰā§āĨ¤ āϝāĻžāϰ āĻŽā§āĻ āϏāĻŦāĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋ āϤāĻžāϰ āύāĻžāĻŽ, āĻāϰ āĻŽā§āĻāĻāĻž print āĻāϰā§āĨ¤
Input. n, āϤāĻžāϰāĻĒāϰ n-āĻāĻž āϞāĻžāĻāύ name,mark1,mark2,mark3āĨ¤
Output. āϞāĻžāĻāύ 1-āĻ āϏāĻŦāĻā§āϝāĻŧā§ āĻāĻžāϞ⧠āύāĻžāĻŽ, āĻāϰ āϞāĻžāĻāύ 2-āĻ āĻāϰ āĻŽā§āĻāĨ¤ āϏāĻŽāĻžāύ āĻšāϞā§, āĻāĻĻā§āϰ āĻŽāϧā§āϝ⧠āĻĒā§āϰāĻĨāĻŽāĻāύāĨ¤
Constraints. 1 <= n <= 20000āĨ¤ āύāĻžāĻŽā§ 1 āĻĨā§āĻā§ 40āĻāĻž character: āĻ āĻā§āώāϰ, āĻāĻŋāϤāϰ⧠āĻāĻāĻāĻž āĻāϰ⧠space, āĻā§āύ⧠comma āύā§āĻ, āĻāϰ āĻĻā§āĻ āĻŽāĻžāĻĨāĻžāϝāĻŧ āĻā§āύ⧠space āύā§āĻāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž mark 0 āĻĨā§āĻā§ 100āĨ¤
Sample. Input 4, Maria Rose,90,85,77, Bob,100,60,95, Zara Bell,88,95,72 āĻāϰ Kenji,70,70,70 āĻĻāĻŋāϞ⧠āĻĻā§āĻ āϞāĻžāĻāύ⧠Bob āĻāϰ 255āĨ¤
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n = 0;
cin >> n;
string line;
getline(cin, line); // finish the line that held n
for (int i = 0; i < n; i++) {
getline(cin, line);
// Split the line at its commas: a name, then three marks.
// Keep the name with the highest total; the first one wins a tie.
}
// Print the best name on one line and its total on the next.
return 0;
}
Run in Compiler
Hint 1
Maria Rose āύāĻžāĻŽā§ āĻāĻāĻāĻž space āĻāĻā§āĨ¤ >> āĻāĻāĻž āĻĒāĻĄāĻŧāϤ⧠āĻāĻŋāϝāĻŧā§ āĻā§āĻĨāĻžāϝāĻŧ āĻĨāĻžāĻŽāĻŦā§?
Hint 2
āϞāĻžāĻāύāĻāĻž āĻāĻāĻāĻž istringstream-āĻ āĻĻāĻžāĻ, āĻāϰ āϤāĻŋāύ argument-āĻāϰ getline āĻĻāĻŋāϝāĻŧā§ āĻĒā§āϰāϤāĻŋāĻāĻž comma āĻĒāϰā§āϝāύā§āϤ āĻĒāĻĄāĻŧā§: āĻāĻāĻŦāĻžāϰ āύāĻžāĻŽā§āϰ āĻāύā§āϝ, āϤāĻŋāύāĻŦāĻžāϰ mark-āĻāϰ āĻāύā§āϝāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž mark-āĻā§ āϏāĻāĻā§āϝāĻž āĻŦāĻžāύāĻžāĻāĨ¤ āϏāĻŦāĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧ āĻŽā§āĻ āĻāϰ āĻāϰ āύāĻžāĻŽ āϰāĻžāĻā§, āĻāϰ āĻŦāĻĻāϞāĻžāĻ āĻļā§āϧ⧠āĻŽā§āĻ āϏāϤā§āϝāĻŋāĻ āĻŦāĻĄāĻŧ āĻšāϞā§āĨ¤
David-āĻāϰ chat app message āĻāϞā§āĻā§ āĻāϰ⧠āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤ āĻĒā§āϰāϤāĻŋāĻāĻž āϞāĻžāĻāύā§āϰ word-āĻā§āϞ⧠āĻļā§āώāĻāĻž āĻĨā§āĻā§ āĻĒā§āϰāĻĨāĻŽāĻāĻž āĻĒāϰā§āϝāύā§āϤ print āĻāϰā§, āĻāĻāĻāĻž āĻāϰ⧠space āĻĻāĻŋāϝāĻŧā§āĨ¤ āϞāĻžāĻāύ⧠word-āĻāϰ āĻŽāĻžāĻā§ āĻŦāĻžāĻĄāĻŧāϤāĻŋ space āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰā§, āĻāϰ āĻļā§āϰā§āϤ⧠āĻŦāĻž āĻļā§āώā§āĻ space āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰā§āĨ¤
Input. n, āϤāĻžāϰāĻĒāϰ n-āĻāĻž āϞāĻžāĻāύ, āĻĒā§āϰāϤāĻŋāĻāĻžāϝāĻŧ āĻ āĻā§āώāϰ āĻāϰ digit-āĻāϰ 1 āĻĨā§āĻā§ 1000āĻāĻž word, āĻāĻ āĻŦāĻž āĻāĻāĻžāϧāĻŋāĻ space āĻĻāĻŋāϝāĻŧā§ āĻāϞāĻžāĻĻāĻžāĨ¤
Output. āĻĒā§āϰāϤāĻŋāĻāĻž āϞāĻžāĻāύā§āϰ word āĻāϞā§āĻā§ āĻā§āϰāĻŽā§, āĻāĻāĻāĻž āĻāϰ⧠space āĻĻāĻŋāϝāĻŧā§ āĻāϞāĻžāĻĻāĻžāĨ¤
Constraints. āĻĒā§āϰ⧠input āĻŦāĻĄāĻŧāĻā§āϰ 1000000 byteāĨ¤
Sample. Input 3, the quick brown fox, Zara tests edge cases āĻāϰ hello āĻĻāĻŋāϞ⧠āϤāĻŋāύ āϞāĻžāĻāύ⧠fox brown quick the, cases edge tests Zara āĻāϰ helloāĨ¤
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n = 0;
cin >> n;
string line;
getline(cin, line); // finish the line that held n
for (int i = 0; i < n; i++) {
getline(cin, line);
// Read the words of the line, then print them from the last
// to the first, separated by single spaces.
}
return 0;
}
Run in Compiler
Hint 1
āĻĒāϰāĻĒāϰ āϤāĻŋāύāĻāĻž space, āĻŦāĻž input-āĻāϰ āĻļā§āϰā§āϤ⧠space āĻĒā§āϞ⧠>> āĻā§ āĻāϰā§?
Hint 2
āϞāĻžāĻāύā§āϰ word-āĻā§āϞ⧠āĻāĻāĻāĻž istringstream āĻĻāĻŋāϝāĻŧā§ āĻĒāĻĄāĻŧā§ āĻāĻāĻāĻž vector<string>-āĻ āϰāĻžāĻā§āĨ¤ āϤāĻžāϰāĻĒāϰ vector-āĻāĻž āĻāϰ āĻļā§āώ index āĻĨā§āĻā§ 0 āĻĒāϰā§āϝāύā§āϤ print āĻāϰā§, āĻĻā§āĻāĻāĻž word-āĻāϰ āĻŽāĻžāĻā§ āĻāĻāĻāĻž space āĻĻāĻŋāϝāĻŧā§āĨ¤
Zara āĻāĻāĻāĻž āϞāĻžāĻāύā§āϰ āĻļā§āϧ⧠āĻ āĻā§āώāϰ āĻāϰ digit āϰāĻžāĻā§, āĻā§āĻ āĻšāĻžāϤā§āϰ āĻāϰā§, āϤāĻžāϰāĻĒāϰ āĻĻā§āĻā§ āϏā§āĻāĻž āĻĻā§āĻ āĻĻāĻŋāĻ āĻĨā§āĻā§ āĻāĻāĻ āĻĒāĻĄāĻŧāĻžāϝāĻŧ āĻāĻŋ āύāĻžāĨ¤ āĻāĻŋāĻā§āĻ āĻŦāĻžāĻāĻŋ āύāĻž āĻĨāĻžāĻāϞ⧠āϏā§āĻāĻžāĻ palindromeāĨ¤
Input. n, āϤāĻžāϰāĻĒāϰ n-āĻāĻž āϞāĻžāĻāύāĨ¤
Output. āĻĒā§āϰāϤāĻŋāĻāĻž āϞāĻžāĻāύā§āϰ āĻāύā§āϝ yes āĻŦāĻž noāĨ¤
Constraints. āĻĒā§āϰāϤāĻŋāĻāĻž āϞāĻžāĻāύ⧠1 āĻĨā§āĻā§ 100000āĻāĻž printable ASCII character, āĻāϰ āĻĒā§āϰ⧠input āĻŦāĻĄāĻŧāĻā§āϰ 1000000 byteāĨ¤
Sample. Input 5, A man, a plan, a canal: Panama, race a car, ?!, No 'x' in Nixon āĻāϰ 12321 āĻĻāĻŋāϞ⧠āĻĒāĻžāĻāĻ āϞāĻžāĻāύ⧠yes, no, yes, yes āĻāϰ yesāĨ¤
#include <cctype>
#include <iostream>
#include <string>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n = 0;
cin >> n;
string line;
getline(cin, line); // finish the line that held n
for (int i = 0; i < n; i++) {
getline(cin, line);
// Keep only the letters and digits, as small letters.
// Print "yes" if what is left reads the same both ways, else "no".
}
return 0;
}
Run in Compiler
Hint 1
āĻļā§āϧ⧠āĻ
āĻā§āώāϰ āĻāϰ digit āϰāĻžāĻāϞ⧠?!-āĻāϰ āĻā§ āĻŦāĻžāĻāĻŋ āĻĨāĻžāĻā§? āϏā§āĻāĻž āĻāĻŋ āĻĻā§āĻ āĻĻāĻŋāĻ āĻĨā§āĻā§ āĻāĻāĻ āĻĒāĻĄāĻŧāĻžāϝāĻŧ?
Hint 2
āĻ āĻā§āώāϰ āĻāϰ digit āĻĻāĻŋāϝāĻŧā§ āĻāĻāĻāĻž āĻĒāϰāĻŋāώā§āĻāĻžāϰ string āĻŦāĻžāύāĻžāĻ, āĻĒā§āϰāϤāĻŋāĻāĻž āĻā§āĻ āĻšāĻžāϤā§āϰ āĻāϰā§āĨ¤ āϤāĻžāϰāĻĒāϰ āĻĻā§āĻ āĻŽāĻžāĻĨāĻž āĻĨā§āĻā§ āĻĻā§āĻāĻāĻž index āĻāĻŋāϤāϰā§āϰ āĻĻāĻŋāĻā§ āĻšāĻžāĻāĻāĻžāĻ, āĻŽāĻŋāϞāĻŋāϝāĻŧā§ āĻŽāĻŋāϞāĻŋāϝāĻŧā§, āϝāϤāĻā§āώāĻŖ āύāĻž āĻāϰāĻž āĻŽā§āĻā§āĻŽā§āĻāĻŋ āĻšāϝāĻŧāĨ¤
Kenji āĻā§āĻ āĻšāĻžāϤā§āϰ āĻ
āĻā§āώāϰā§āϰ āĻāĻāĻāĻž string encode āĻāϰā§: āĻāĻāĻ āĻ
āĻā§āώāϰā§āϰ āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻŦāĻā§āϝāĻŧā§ āϞāĻŽā§āĻŦāĻž āĻāĻžāύāĻž āĻĻāϞ āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧ āĻāĻ āĻ
āĻā§āώāϰ āĻāϰ āϤāĻžāϰāĻĒāϰ āĻĻāϞā§āϰ lengthāĨ¤ āϤāĻžāĻ aaabccdddd āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧ a3b1c2d4āĨ¤
Input. āĻā§āĻ āĻšāĻžāϤā§āϰ āĻ āĻā§āώāϰā§āϰ āĻāĻāĻāĻž stringāĨ¤
Output. āĻāĻ āϞāĻžāĻāύ⧠encode āĻāϰāĻž stringāĨ¤
Constraints. String-āĻ 1 āĻĨā§āĻā§ 500000āĻāĻž āĻ
āĻā§āώāϰāĨ¤ āϏāĻŦāĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧ test, length 1-āĻāϰ 500000āĻāĻž āĻĻāϞ, āĻāϤā§āϤāϰ ans = ans + ... āĻĻāĻŋāϝāĻŧā§ āύāϤā§āύ āĻāϰ⧠āĻāĻĄāĻŧāϞ⧠āϏāĻŽāϝāĻŧ āĻĢā§āϰāĻŋāϝāĻŧā§ āĻĢā§āϞā§; āĻāĻāĻž GCC 12-āĻ āĻŽāĻžāĻĒāĻžāĨ¤
Sample. Input aaabccdddd āĻĻāĻŋāϞ⧠a3b1c2d4āĨ¤
#include <iostream>
#include <string>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
string s;
cin >> s;
// For each run of equal letters, add the letter and the length
// of the run to the answer. Print the answer on one line.
return 0;
}
Run in Compiler
Hint 1
āĻāĻāĻāĻž āĻĻāϞ āĻļā§āώ āĻšāϝāĻŧ āĻā§āĻĨāĻžāϝāĻŧ? āĻāϰ 500000āĻāĻž āĻĻāϞā§āϰ āĻĒā§āϰāϤāĻŋāĻāĻžāϰ length 1 āĻšāϞ⧠āĻāϤā§āϤāϰ āĻāϤ āϞāĻŽā§āĻŦāĻž?
Hint 2
āĻāĻāĻāĻž āĻĻāϞā§āϰ āĻļā§āϰ⧠āĻĨā§āĻā§ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āĻāĻāĻāĻž index āĻāĻāĻŋāϝāĻŧā§ āύāĻžāĻ, āϝāϤāĻā§āώāĻŖ āĻ āĻā§āώāϰ āĻāĻāĻ āĻĨāĻžāĻā§āĨ¤ āĻ āĻā§āώāϰāĻāĻž āĻāϰ āĻĻāϞā§āϰ length, text āĻšāĻŋāϏā§āĻŦā§, āĻāϤā§āϤāϰā§āϰ āĻļā§āώ⧠āϝā§āĻ āĻāϰā§āĨ¤ āĻĻāϞ āϝā§āĻāĻžāύ⧠āĻļā§āώ āĻšāϞ⧠āϏā§āĻāĻžāύ⧠āϞāĻžāĻĢ āĻĻāĻžāĻ, āĻāϰ āĻāĻāĻĻāĻŽ āĻļā§āώ⧠āĻāϤā§āϤāϰāĻāĻž āĻāĻāĻŦāĻžāϰ print āĻāϰā§āĨ¤
Amara-āϰ calculator-āĻā§ āĻāĻŽāύ āĻĻā§āĻāĻāĻž non-negative āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻž āϝā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§, āϝā§āĻā§āϞ⧠āĻāĻāĻāĻž long long-āĻāϰ āĻāύā§āϝ āĻ
āύā§āĻ āĻŦāĻĄāĻŧāĨ¤ āĻāĻā§āϞ⧠string āĻšāĻŋāϏā§āĻŦā§ āĻĒāĻĄāĻŧā§, āĻāϰ āϝā§āĻāĻĢāϞ print āĻāϰā§āĨ¤
Input. āĻĻā§āĻāĻāĻž āϞāĻžāĻāύ, āĻĒā§āϰāϤāĻŋāĻāĻžāϝāĻŧ āĻāĻāĻāĻž non-negative āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻžāĨ¤
Output. āĻāĻ āϞāĻžāĻāύ⧠āϝā§āĻāĻĢāϞāĨ¤
Constraints. āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻāĻā§āϝāĻžāϝāĻŧ 1 āĻĨā§āĻā§ 100000āĻāĻž digit, āĻļā§āϰā§āϤ⧠āĻā§āύ⧠āĻļā§āύā§āϝ āύā§āĻ, āĻļā§āϧ⧠0 āϏāĻāĻā§āϝāĻžāĻāĻž āĻāĻžāĻĄāĻŧāĻžāĨ¤
Sample. Input 958 āĻāϰ 67 āĻĻāĻŋāϞ⧠1025āĨ¤
#include <iostream>
#include <string>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
string a, b;
cin >> a >> b;
// Add the two numbers digit by digit, from the right,
// carrying 1 whenever a column reaches 10. Print the sum.
return 0;
}
Run in Compiler
Hint 1
āĻāĻžāϤāĻžāϰ āύāĻŋāϝāĻŧāĻŽā§ āϝā§āĻ āĻļā§āϰ⧠āĻšāϝāĻŧ āĻā§āĻĨāĻž āĻĨā§āĻā§, āĻāϰ āĻā§āύ⧠āĻāϞāĻžāĻŽ 10-āĻ āĻĒā§āĻāĻāĻžāϞ⧠āĻā§ āĻšāϝāĻŧ? 999 āϝā§āĻ 1 āĻāϰ⧠āĻĻā§āĻā§āĨ¤
Hint 2
āĻĒā§āϰāϤāĻŋāĻāĻž āϏāĻāĻā§āϝāĻžāϰ āĻļā§āώ digit āĻĨā§āĻā§ āĻāĻāĻāĻž index āĻĒā§āĻāύā§āϰ āĻĻāĻŋāĻā§ āĻšāĻžāĻāĻāĻžāĻāĨ¤ āĻāĻāĻāĻž āĻāϞāĻžāĻŽ āϝā§āĻ āĻāϰ⧠āĻĻā§āĻāĻāĻž digit, āĻā§āύ⧠āϏāĻāĻā§āϝāĻžāϰ digit āĻĢā§āϰāĻžāϞ⧠0, āĻāϰ āĻšāĻžāϤā§āϰ āϏāĻāĻā§āϝāĻžāĨ¤ āĻāϰ āĻļā§āώ digit-āĻāĻž āĻĢāϞāĻžāĻĢāϞ⧠āϝā§āĻ āĻāϰā§, āĻāϰ āĻĻāĻļāĻā§āϰ āĻ āĻāĻļāĻāĻž āĻšāĻžāϤ⧠āϰāĻžāĻā§āĨ¤ āĻā§āύ⧠digit āĻŦāĻž āĻšāĻžāϤ⧠āĻāĻŋāĻā§ āĻŦāĻžāĻāĻŋ āĻĨāĻžāĻāĻž āĻĒāϰā§āϝāύā§āϤ āĻāĻžāϞāĻžāĻ, āϤāĻžāϰāĻĒāϰ āĻĢāϞāĻžāĻĢāϞāĻāĻž āĻāĻāĻŦāĻžāϰ āĻāϞā§āĻā§ āĻĻāĻžāĻāĨ¤
āϏāĻāϰāĻžāĻāϰ āϝ⧠āĻĒā§āϰāĻļā§āύāĻā§āϞ⧠āĻāϏā§
find āĻā§āύ -1 āύāĻž āĻĻāĻŋāϝāĻŧā§ string::npos āĻĻā§āϝāĻŧ?
findāĻĢā§āϰāϤ āĻĻā§āϝāĻŧ āĻāĻāĻāĻžsize_t, āϝā§āĻāĻž negative āĻšāϤ⧠āĻĒāĻžāϰ⧠āύāĻžāĨ¤ āϤāĻžāĻ library āĻĻā§āϝāĻŧ āĻāĻŽāύ āĻāĻāĻāĻž āĻŽāĻžāύ, āϝā§āĻāĻžāύ⧠āĻā§āύ⧠āĻāϏāϞ index āĻĒā§āĻāĻāĻžāϤ⧠āĻĒāĻžāϰ⧠āύāĻž, āĻŽāĻžāύ⧠āϏāĻŦāĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧsize_t, āĻāϰ āĻāϰ āύāĻžāĻŽ āĻĻā§āϝāĻŧstring::nposāĨ¤ āĻāĻ āύāĻžāĻŽā§āϰ āϏāĻžāĻĨā§ āϤā§āϞāύāĻž āĻāϰā§, āϤāĻžāĻšāϞ⧠code āϏāĻŦ machine-āĻ āĻāϞāĻŦā§āĨ¤Judge āϞāĻžāĻāύā§āϰ āĻļā§āώā§āϰ space āϧāϰ⧠āύāĻžāĨ¤ āϤāĻžāĻšāϞ⧠āĻāĻŋ āĻĒā§āϰāϤāĻŋāĻāĻž word-āĻāϰ āĻĒāϰ⧠āĻāĻāĻāĻž space āϰā§āĻā§ āĻĻāĻŋāϤ⧠āĻĒāĻžāϰāĻŋ?
āϞāĻžāĻāύā§āϰ āĻāĻāĻĻāĻŽ āĻļā§āώā§, āĻšā§āϝāĻžāĻ, judge āĻāĻāĻž āϧāϰ⧠āύāĻžāĨ¤ āĻāĻŋāύā§āϤ⧠āϞāĻžāĻāύā§āϰ āĻāĻŋāϤāϰ⧠āĻĻā§āĻāĻāĻž space, āĻŦāĻž āĻļā§āϰā§āϤ⧠āĻāĻāĻāĻž, āĻŽāĻžāύ⧠āĻāϞāĻžāĻĻāĻž āĻāĻāĻāĻž āϞāĻžāĻāύ, āĻāϰ āĻāϤā§āϤāϰ āĻā§āϞāĨ¤ āĻĻā§āĻāĻāĻž word-āĻāϰ āĻŽāĻžāĻā§ āĻāĻāĻāĻž space, āĻĒā§āϰāĻĨāĻŽāĻāĻžāϰ āĻāĻā§ āĻāĻāύ⧠āύāĻž, āĻāĻ āĻ āĻā§āϝāĻžāϏāĻāĻžāĻ āϏāĻŦāϏāĻŽāϝāĻŧ āĻ āĻŋāĻāĨ¤
āĻĒā§āϰāϤāĻŋāĻāĻž input ASCII āĻā§āύ? āĻāϏāϞ text-āĻ āϤ⧠āĻŦāĻžāĻāϞāĻž āĻĨāĻžāĻā§āĨ¤
ASCII-āϤ⧠āĻāĻāĻāĻž character āĻŽāĻžāύ⧠āĻāĻ byte, āϤāĻžāĻ
size(),s[i]āĻāϰtolowerāϝāĻž āĻŽāύ⧠āĻšāϝāĻŧ āĻ āĻŋāĻ āϤāĻžāĻ āĻāϰā§āĨ¤ UTF-8-āĻ āĻāĻāĻāĻž āĻŦāĻžāĻāϞāĻž āĻ āĻā§āώāϰ 3 byte, āϤāĻžāĻ āĻāĻāĻ code byte āĻā§āύāϤ, lesson 01 āϝā§āĻŽāύ āĻĻā§āĻāĻŋāϝāĻŧā§āĻā§āĨ¤ āĻāϏāϞ āĻ āĻā§āώāϰ āĻā§āύāϤ⧠āĻāϰ āĻāύā§āϝ āĻŦāĻžāύāĻžāύ⧠library āϞāĻžāĻā§, āĻāϰ āϏā§āĻāĻž āĻāĻ set-āĻāϰ āĻŦāĻžāĻāϰā§āĨ¤ans = ans + piece āĻāĻŋ āϏāĻŦāϏāĻŽāϝāĻŧāĻ āĻā§āϞ?
āύāĻžāĨ¤ āĻāϝāĻŧā§āĻāĻāĻž āĻā§āĻāϰ⧠āĻāĻāĻŦāĻžāϰ āĻā§āĻĄāĻŧāĻž āĻĻā§āĻāϝāĻŧāĻž, āϝā§āĻŽāύ
name = first + " " + last, āĻĒāϰāĻŋāώā§āĻāĻžāϰ āĻāϰ āϏāϏā§āϤāĻžāĨ¤ āĻāϰāĻ āĻāϏ⧠āϝāĻāύ āĻāϤā§āϤāϰ loop-āĻāϰ āĻāĻŋāϤāϰ⧠āĻŦāĻžāĻĄāĻŧāϤ⧠āĻĨāĻžāĻā§, āĻāĻžāϰāĻŖ āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰ āĻ āĻĒāϰā§āϝāύā§āϤ āĻāĻĄāĻŧāĻž āϏāĻŦāĻāĻŋāĻā§ copy āĻšāϝāĻŧāĨ¤ Loop-āĻāϰ āĻāĻŋāϤāϰā§+=āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤
āĻŽā§āϞ āĻāĻĨāĻž
- Word āĻĒāĻĄāĻŧā§
cin >>āĻĻāĻŋāϝāĻŧā§ āĻāϰ āϞāĻžāĻāύgetlineāĻĻāĻŋāϝāĻŧā§;cin >> n-āĻāϰ āĻĒāϰ⧠āĻāĻāĻāĻžgetlineāĻāĻ āϞāĻžāĻāύāĻāĻž āĻļā§āώ āĻāϰā§āĨ¤ - āĻāĻāĻžāύ⧠āĻĒā§āϰāϤāĻŋāĻāĻž input ASCII, āϤāĻžāĻ
size()character āĻā§āύ⧠āĻāϰs[i]āĻŽāĻžāύ⧠āĻāĻāĻāĻž characterāĨ¤ findāĻĻā§āϝāĻŧ āĻāĻāĻāĻž index āĻŦāĻžstring::npos; āĻāĻāĻž āĻāĻāĻāĻžsize_t-āĻ āϰāĻžāĻā§ āĻāϰstring::npos-āĻāϰ āϏāĻžāĻĨā§ āĻŽā§āϞāĻžāĻāĨ¤- 1018 āĻĒāϰā§āϝāύā§āϤ āϏāĻāĻā§āϝāĻž āĻāĻāĻāĻž
long long-āĻ āϧāϰā§; āĻāϰ āĻā§āϝāĻŧā§ āϞāĻŽā§āĻŦāĻžāĻā§āϞ⧠string āĻšāϝāĻŧā§āĻ āĻĨāĻžāĻā§, āĻāϰ āϝā§āĻ āĻšāϝāĻŧ āĻāĻ āĻāϞāĻžāĻŽ āĻāϰā§āĨ¤ - āĻŦāĻžāĻĄāĻŧāϤ⧠āĻĨāĻžāĻāĻž āĻāϤā§āϤāϰ āĻāĻĄāĻŧā§
+=āĻĻāĻŋāϝāĻŧā§: loop-āĻans = ans + pieceāϏāĻŦāĻā§āϝāĻŧā§ āĻŦāĻĄāĻŧ test-āĻ āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰāĻ āĻāĻ āϏā§āĻā§āύā§āĻĄ āĻĒā§āϰāĻŋāϝāĻŧā§ āĻā§āĻā§āĨ¤ - āĻāϰāĻ āĻāĻā§āϰ⧠āϝā§āϤ⧠āĻāĻžāĻāϞā§: CP and Interview Pack, string-āĻāϰ pattern āĻāϰ bug gallery (Pro)āĨ¤
āĻāϰāĻĒāϰ āĻāϏāĻā§ cheat sheet, āĻāĻ āĻĒāĻžāϤāĻžāϝāĻŧ āĻĒā§āϰ⧠string, āϤāĻžāϰāĻĒāϰ module testāĨ¤
lesson ā§ āĻļā§āώ
āϏāĻŦ problem accepted āĻšāϞā§āĻ lesson āĻļā§āώāĨ¤
ā§Š āĻāĻž free problem-āĻāϰ āĻŽāϧā§āϝ⧠ā§Ļ āĻāĻž accepted
āĻĒāϰā§āϰāĻāĻž: Cheat sheet: āĻāĻ āĻĒāĻžāϤāĻžāϝāĻŧ string