Problem: A. Cut and Paste when i am using
s=s+t; [this is giving me TLE on 37 test ] [128332169](https://mirror.codeforces.com/contest/1280/submission/128332169)
and s+=t; is Accepted 128332405 20 ms
can anyone tell me why such happen.???
# | User | Rating |
---|---|---|
1 | tourist | 4009 |
2 | jiangly | 3823 |
3 | Benq | 3738 |
4 | Radewoosh | 3633 |
5 | jqdai0815 | 3620 |
6 | orzdevinwang | 3529 |
7 | ecnerwala | 3446 |
8 | Um_nik | 3396 |
9 | ksun48 | 3390 |
10 | gamegame | 3386 |
# | User | Contrib. |
---|---|---|
1 | cry | 167 |
2 | Um_nik | 163 |
3 | maomao90 | 162 |
3 | atcoder_official | 162 |
5 | adamant | 159 |
6 | -is-this-fft- | 158 |
7 | awoo | 157 |
8 | TheScrasse | 154 |
9 | Dominater069 | 153 |
9 | nor | 153 |
Problem: A. Cut and Paste when i am using
s=s+t; [this is giving me TLE on 37 test ] [128332169](https://mirror.codeforces.com/contest/1280/submission/128332169)
and s+=t; is Accepted 128332405 20 ms
can anyone tell me why such happen.???
Name |
---|
s = s + t;
this line will create new string object with values + t
and assign it tos
, complexity $$$O(|s| + |t|)$$$s += t;
this line just simply appendt
tos
, complexity $$$O(|t|)$$$This code produced the following output on my system
So avoid using assignment operator!
Thanks. Found where i am wrong.
When I'm running your code on Dev C++ it is printing 0 0, but in the online C++ compiler, it is giving the right answer. Can you please tell me what is wrong with the Dev C++ compiler? Thank You:)
I guess
CLOCKS_PER_SEC
on your system has the value 1000. So just add consuming stuff between 2clock()
call, you'll see the difference:For better precision, I suggest using chrono. IMO using
clock()
is better as it's really easy to remember the syntax.I think the '+' operator's complexity is O(2*(n1 + n2)), where n1 and n2 are the lengths of the strings s and t.
The complexity of the operator '+=' might only be O(2*n2) in some implementations on the other hand as only the append() operation is to be performed.
A Stack Overflow Thread
If there is a huge difference between the lengths of s and t, this could effectively work out as the difference between an O(N) algorithm and an O(1) algorithm, and could possibly lead to TLE.
Click