Quote:
For example, the string "AAAABBBCCDAA" would be encoded as "4A3B2C1D2A".
In fact, the result should be "4A3B2CD2A" because printing the 1 is counter productive, but code is a little more complicated to handle the situation.
Obviously, you need to learn how to analyze a problem and craft an algorithm.
Take a sheet of paper and pencil and write down all the steps to solve the problem, and refine as necessary.
In this case draw a table, first column is for input string, 1 char per line, add 1 column per variable, and 1 column for output, add intermediate lines when necessary. And note every change in variables.
- Learn one or more analyze methods, E.W. Djikstra/N. Wirth
Stepwize Refinement/top-Down method is a good start.
Structured Programming.pdf[
^]
https://en.wikipedia.org/wiki/Top-down_and_bottom-up_design[
^]
https://en.wikipedia.org/wiki/Structured_programming[
^]
https://en.wikipedia.org/wiki/Edsger_W._Dijkstra[
^]
https://www.cs.utexas.edu/users/EWD/ewd03xx/EWD316.PDF[
^]
Program Development by Stepwise Refinement[
^]
- Learn Algorithms and Data-Structures.
GitHub - The-Art-of-Computer-Programming-Books: "Everyday life is like programming, I guess. If you love something you can put beauty into it." ? Donald E. Knuth[
^]
Skiena The Algorithm Design Manual
-----
When your code do not behave the way you expect, or you don't understand why !
There is an almost universal solution: Run your code on debugger step by step, inspect variables.
The debugger is here to show you what your code is doing and your task is to compare with what it should do.
There is no magic in the debugger, it don't know what your code is supposed to do, it don't find bugs, it just help you to by showing you what is going on. When the code don't do what is expected, you are close to a bug.
To see what your code is doing: Just set a breakpoint and see your code performing, the debugger allow you to execute lines 1 by 1 and to inspect variables as it execute.
Debugger - Wikipedia, the free encyclopedia[
^]
Mastering Debugging in Visual Studio 2010 - A Beginner's Guide[
^]
Basic Debugging with Visual Studio 2010 - YouTube[
^]
27.3. pdb — The Python Debugger — Python 3.6.1 documentation[
^]
Debugging in Python | Python Conquers The Universe[
^]
pdb – Interactive Debugger - Python Module of the Week[
^]
The debugger is here to only show you what your code is doing and your task is to compare with what it should do.