+ const bool canRemoveFromStart = initialCharToRemove > 0;
+ const bool canRemoveFromEnd = endCharToRemove < len - 1;
+
+ if ( !canRemoveFromStart && !canRemoveFromEnd )
+ {
+ // we need to remove all the characters of the string!
+ break;
+ }
+
+ // Remove from the beginning in even steps and from the end
+ // in odd steps, unless we exhausted one side already:
+ removeFromStart = !removeFromStart;
+ if ( removeFromStart && !canRemoveFromStart )
+ removeFromStart = false;
+ else if ( !removeFromStart && !canRemoveFromEnd )
+ removeFromStart = true;
+
+ if ( removeFromStart )