If the user touch the screen all along the movement, the string will be correct. If the user get off the screen, the string will be reinitialised, then it wont be correct at the end.
Example : your checkpoints are A B C D E F.
Correct case : The user starts touching the screen, go through A (=> string = A), trhough B (=> string = AB)... through F => string = ABCDEF ==> correct
Incorrect case : The user starts touching the screen, go through A (=> string = A), trhough B (=> string = AB), then dont touch the screen between B & C (==> string = ""), then touch again and go through C (=> string = C) ... through F ==> string = CDEF ==> incorrect