第三题根据 https://www.nowcoder.com/discuss/637603?type=post&order=create&pos=&page=1&channel=-1&source_id=search_post_nctrack 大佬提供的思路,使用dp写了一版Java代码,测试用例都过了,贴在这里交流下。 思路如下: 动态规划: * 1. 定义状态:dp[i][j] (0=<i<k, 0<=j<s.length)代表第(i+1)次操作时,将字符串s开头的j个字符交换到s的末尾的路径数 * 2. 状态转移方程:dp[i][j] = sum(dp[i-1][l], 0<= l <s.length && j != l) * 边界:i-1>=0, i>=1, i=0是边界 * 3. 初始化: dp[0][0] = 0; dp[0][j] = 1,(0< j <s.length) * 4. 输出:当s.substring(j,len) + s.substring(0,j)) == t 时,j∈[0,s.length), 输出dp[k-1][j]
2 5

相关推荐

05-27 09:42
门头沟学院 Java
Noe1017:别给这种小丑画面行吗?知道是一坨屎,还要让大家也品尝一下?
点赞 评论 收藏
分享
lllllkin:感觉可以精简到一页简历,有些排版感觉不是必须的。 时间线越早的,你自己越熟悉的放前面。描述可以更精简些,一些问题解决感觉可以不用写具体技术栈,卖个关子,等面试官问。
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务