@ninijiaLeetcode每日一题练习 ------ 2381. 字母移位 II 中发帖

从Leetcode 每日一题练习继续讨论: 
2381. 字母移位 II
2381. Shifting Letters II
题解
本题最直观的方法就是遍历shifts数组,根据shifts数组的内容来改变s中对应范围的字符。
但考虑如果shift中的范围有重叠,并且在前一个shift中方向为0,而在后一个shift中方向为1,则重叠范围内的字符实际上并未发生变化。因此为了避免在这种情况下来回变化字符,可以想办法记录每个位置处字符的变化量,这里以方向1的变化为+1,以方向0的变化为-1,这样只需根据最终记录的变化量的值直接变化对应字符即可。为了避免每次记录某个范围内的变化值时都要遍历该范围内的所有记录并改变数值,可以使用线段树,使用线段树可以只记录某个范围内的变化量而不用直接将范围内所有数字的具体值算出来,到shift全部遍历完成后再一边遍历s字符串一边计算每个位置具体的变化量并改变...