ApaarGulati's blog

By ApaarGulati, history, 4 months ago, In English

Problem: 1927B - Following the String

My 1st approach:277732437 — Gave TLE on test 3

Read editorial, understood that their approach was similar but they did not store the alphabets, they only stored the count.

2nd submission after reading editorial:277733314 — Still gave TLE on test 3

Tried to submit the exact code given in the editorial(277733398) — Still gave TLE on test 3

Can someone please suggest a better way of solving it?(I went through a few submissions but they did the same thing and got AC so i was confused about what was wrong in my submissions)(Or some of the other submissions which were different, i could not exactly grasp what they were trying to do/what approach they followed)

  • Vote: I like it
  • 0
  • Vote: I do not like it

»
4 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by ApaarGulati (previous revision, new revision, compare).

»
4 months ago, # |
Rev. 3   Vote: I like it +1 Vote: I do not like it

The problem lies in the line:

s += chr(97 +j)

Adding to a string in PyPy (in this case to s) works for O(len(s)), because strings in PyPy are immutable objects and in fact this line created a new string with length len(s) + 1, and since it is in a loop, it turned out that the asymptotics are not O(n), and O(n^2), which led to TLE

Instead of a string, try using an array and adding elements to it

  • »
    »
    4 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    oh ok thanks a lot.

    but actually, there were submissions like 275104852 and 274045809 in which even strings were working so i wad a bit confused.

    but thanks a lot. i will keep this in mind from next time. :)

    • »
      »
      »
      4 months ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      Yes, I made a mistake (corrected the previous comment from Python to PyPy)

      Adding a character to a string in Python and PyPy work differently, your submit was made on PyPy, just in it adding to a string works for O(len(s)), those submits that received AC are sent to Python, in it adding to a string works for O(1)