Update simplify-path.md First Python Solution to be O(n) in the Worst…#5523
Open
AnonymousAnion wants to merge 1 commit intoneetcode-gh:mainfrom
Open
Update simplify-path.md First Python Solution to be O(n) in the Worst…#5523AnonymousAnion wants to merge 1 commit intoneetcode-gh:mainfrom
AnonymousAnion wants to merge 1 commit intoneetcode-gh:mainfrom
Conversation
… Case The first proposed Python solution is O(n^2) due to the use of naive string concatenation e.g. cur += c. Don't forget that strings are immutable so naive concatenation is an O(n) operation and since this is within a for loop that is O(n) the overall solution becomes O(n^2). This would occur in the worst case of a very long named single directory. Therefore, the second solution should be strongly preferred! I've added a simple fix to make the first Python solution O(n) by ensuring the string uses the pythonic way of string building by appending to a list then joining.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
… Case
The first proposed Python solution is O(n^2) due to the use of naive string concatenation e.g. cur += c. Don't forget that strings are immutable so naive concatenation is an O(n) operation and since this is within a for loop that is O(n) the overall solution becomes O(n^2). This would occur in the worst case of a very long named single directory. Therefore, the second solution should be strongly preferred!
I've added a simple fix to make the first Python solution O(n) by ensuring the string uses the pythonic way of string building by appending to a list then joining. This makes the python solution consistent with the C++, Java, etc. implementations.
Important
Please make sure the file name is lowercase and a duplicate file does not already exist before merging.