有一个长度为N的由小写字母组成的字符串S,还有一个整数K。在每一步中,可以选择一个位置 i 并在 i 和 i + K 处交换字符(i + K ,即交换之后,新形成的字符串应字典序大于旧字符串。为了尽可能交换尽量多的步数。最多可以交换多少步呢。
示例1
输入
"cbexa",2
输出
2
说明
cbexa -> cxeba -> excba 步数为2
加载中...
import java.util.*; public class Solution { /** * * @param s string字符串 s.size() <= 1e5 * @param k int整型 k <= s.size() * @return int整型 */ public int turn (String s, int k) { // write code here } }
class Solution { public: /** * * @param s string字符串 s.size() <= 1e5 * @param k int整型 k <= s.size() * @return int整型 */ int turn(string s, int k) { // write code here } };
# # # @param s string字符串 s.size() <= 1e5 # @param k int整型 k <= s.size() # @return int整型 # class Solution: def turn(self , s , k ): # write code here
/** * * @param s string字符串 s.size() <= 1e5 * @param k int整型 k <= s.size() * @return int整型 */ function turn( s , k ) { // write code here } module.exports = { turn : turn };
# # # @param s string字符串 s.size() <= 1e5 # @param k int整型 k <= s.size() # @return int整型 # class Solution: def turn(self , s , k ): # write code here
package main /** * * @param s string字符串 s.size() <= 1e5 * @param k int整型 k <= s.size() * @return int整型 */ func turn( s string , k int ) int { // write code here }
/** * * @param s string字符串 s.size() <= 1e5 * @param k int整型 k <= s.size() * @return int整型 */ int turn(char* s, int k ) { // write code here }
"cbexa",2
2