字符串右旋/左旋
引言
假设字符串"abcde"
对于输入字符串 "abcde" 经过两次右旋后,函数应该将其转换为 "deabc"。
思路
不妨先假设右旋次数为2,同时将整个字符串分为两部分len-2和2
那么转换后的结果是"deabc",将结果分为"dea"和"bc"
原始字符串分为"abc"和"de",首先尝试将第二部分内容移动到前面,也就是将字符串进行整体反转,这样就相当于字符串进行了滑动,结果为"edcba"但注意到,反转后的字符串为"ed""cba",观察到,与结果字符串相比,反转后的字符串“ed”"cba"每部分恰好是"de""abc"的反转
因此,对于字符串右旋,可以考虑
1.反转整个字符串
2.分别反转前n和len-n个字符
左旋操作则恰好相反

浙公网安备 33010602011771号