现在有一个长度为n的字符串,进行循环右移k位的操作,少对这个字符串进行几次区间反转操作能实现循环右移k位呢。反转操作指字符串某一区间内的字符反转,例如“123456”,区间[3,5]进行反转字符串变为“125436”。假设字符串每一位都不同。给定一个字符串长度n和循环右移次数k,求最少反转次数。
示例1
输入
3,4
输出
2
说明
例如字符串为123 那么循环右移4次变为312,用区间反转操作代替的话,就是先对[1,3]反转得到321,再对[2,3]反转得到312,最少进行两次反转操作
加载中...
import java.util.*; public class Solution { /** * * @param n int整型 字符串长度n * @param k int整型 循环右移次数k * @return int整型 */ public int solve (int n, int k) { // write code here } }
class Solution { public: /** * * @param n int整型 字符串长度n * @param k int整型 循环右移次数k * @return int整型 */ int solve(int n, int k) { // write code here } };
# # # @param n int整型 字符串长度n # @param k int整型 循环右移次数k # @return int整型 # class Solution: def solve(self , n , k ): # write code here
/** * * @param n int整型 字符串长度n * @param k int整型 循环右移次数k * @return int整型 */ function solve( n , k ) { // write code here } module.exports = { solve : solve };
# # # @param n int整型 字符串长度n # @param k int整型 循环右移次数k # @return int整型 # class Solution: def solve(self , n , k ): # write code here
package main /** * * @param n int整型 字符串长度n * @param k int整型 循环右移次数k * @return int整型 */ func solve( n int , k int ) int { // write code here }
/** * * @param n int整型 字符串长度n * @param k int整型 循环右移次数k * @return int整型 */ int solve(int n, int k ) { // write code here }
3,4
2