复习一下,防止复试被问到 class Solution { public: int findRotateSteps(string ring, string key) { int m = key.size(), n = ring.size(); vector<vector<int>> pos(26, vector<int>(0, 0)); for (int i = 0; i < n; i++) { pos[ring[i] - 'a'].push_back(i); } vector<vector<int>> dp(m, vector<int>(n, 0x3f3f3f3f)); for (auto j:pos[key[0] - 'a']) { dp[0][j] = min(j, n - j); } for (int i = 1; i < m; i++) { for (auto j:pos[key[i] - 'a']) { for (auto k:pos[key[i - 1] - 'a']) { dp[i][j] = min(dp[i][j], dp[i - 1][k] + min(abs(k - j), n - abs(k - j))); } } } int min = INT_MAX; for (auto item:dp[m - 1]) { if (item < min) { min = item; } } return min + m; } };

相关推荐

湫湫湫不会java:1.在校经历全删了2.。这些荣誉其实也没啥用只能说,要的是好的开发者不是好好学生3.项目五六点就行了,一个亮点一俩行,xxx技术解决,xxx问题带来xxx提升。第一页学历不行,然后啥有价值的信息也没有,到第二页看到项目了,第一个项目九点,第二个项目像凑数的俩点。总体给人又臭又长,一起加油吧兄弟
点赞 评论 收藏
分享
ZywOo_求职版:谁问你了....
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务