当前位置:网站首页>[crampon programming] lintcode decoding Encyclopedia - 1100 strange printer
[crampon programming] lintcode decoding Encyclopedia - 1100 strange printer
2022-07-05 04:31:00 【BZIClaw】
【 Crampon programming 】LintCode Decoding Encyclopedia —— 1100 Strange printer
author :BZIClaw
1100 Strange printer
Python:
class Solution:
""" @param s: @return: the minimum number of turns the printer needed in order to print it """
def strangePrinter(self, s):
# write your code here
dp = [[0 for i in range(0,102)] for i in range(0,102)]
n = len(s)
if n == 0:
return 0
for i in range(0,n):
dp[i][i] = 1
for leng in range(1,n):
for j in range(0,n-leng):
dp[j][j+leng] = leng + 1
for k in range(j+1,j+leng+1):
temp = dp[j][k-1] + dp[k][j+leng]
if s[k-1] == s[j+leng]:
temp -= 1
dp[j][j+leng] = min(dp[j][j+leng],temp)
return dp[0][n-1]
Java:
public class Solution {
/** * @param s: * @return: the minimum number of turns the printer needed in order to print it */
public int strangePrinter(String s) {
// write your code here
int n = s.length();
int[][] f = new int[n][n];
for (int i = n - 1; i >= 0; i--) {
f[i][i] = 1;
for (int j = i + 1; j < n; j++) {
if (s.charAt(i) == s.charAt(j)) {
f[i][j] = f[i][j - 1];
} else {
int minn = Integer.MAX_VALUE;
for (int k = i; k < j; k++) {
minn = Math.min(minn, f[i][k] + f[k + 1][j]);
}
f[i][j] = minn;
}
}
}
return f[0][n - 1];
}
}
C++
class Solution {
public:
/** * @param s: * @return: the minimum number of turns the printer needed in order to print it */
// Interval class DP
//DFS
vector<vector<int>> dp;
int strangePrinter(string &s) {
// write your code here
dp = vector<vector<int>>(s.length(), vector<int>(s.length(), -1));
return strangePrinter(s, 0, s.length() - 1);
}
int strangePrinter(string &s, int l, int r){
if(l > r)
return 0;
if(dp[l][r] != -1)
return dp[l][r];
// Default behavior, print s[i] to s[j - 1] and print s[j]
int ret = strangePrinter(s, l, r - 1) + 1;
for(int i = l; i < r; i++){
if(s[i] == s[r])
ret = min(ret, strangePrinter(s, l, i) + strangePrinter(s, i + 1, r - 1));
}
return dp[l][r] = ret;
}
};
JavaScript:
export class Solution {
/** * strangePrinter * * @param s: * @return: the minimum number of turns the printer needed in order to print it */
strangePrinter(s) {
if ( !s ) {
return 0; }
let n = s.length;
let f = [];
for (let i = 0; i < n; i++) {
f[i] = [];
f[i][i] = 1;
}
for (let l = 2; l <= n; l++ ) {
for (let i = 0; i + l <= n; i++) {
let j = i + l - 1;
f[i][j] = 1 + f[i+1][j];
for (let k = i + 1; k < j; k++) {
if (s[i] == s[k]) {
f[i][j] = Math.min(f[i][j], f[i+1][k] + f[k+1][j]);
}
}
if (s[i] == s[j]) {
f[i][j] = Math.min(f[i][j], f[i+1][j]);
}
}
}
return f[0][n-1];
}
}
Go:None
Pay attention to me , Learn more about programming
边栏推荐
- NetSetMan pro (IP fast switching tool) official Chinese version v5.1.0 | computer IP switching software download
- Uncover the seven quirky brain circuits necessary for technology leaders
- SPI read / write flash principle + complete code
- Basic analysis of IIC SPI protocol
- Technical tutorial: how to use easydss to push live streaming to qiniu cloud?
- web资源部署后navigator获取不到mediaDevices实例的解决方案(navigator.mediaDevices为undefined)
- 程序员应该怎么学数学
- [phantom engine UE] the difference between running and starting, and the analysis of common problems
- Decryption function calculates "task state and lifecycle management" of asynchronous task capability
- [illusory engine UE] method to realize close-range rotation of operating objects under fuzzy background and pit recording
猜你喜欢
线上故障突突突?如何紧急诊断、排查与恢复
10 programming habits that web developers should develop
MacBook安装postgreSQL+postgis
Threejs Internet of things, 3D visualization of farms (I)
函数(基本:参数,返回值)
官宣!第三届云原生编程挑战赛正式启动!
mxnet导入报各种libcudart*.so、 libcuda*.so找不到
Raki's notes on reading paper: soft gazetteers for low resource named entity recognition
【FineBI】使用FineBI制作自定义地图过程
网络安全-记录web漏洞修复
随机推荐
【虚幻引擎UE】运行和启动的区别,常见问题分析
美国5G Open RAN再遭重大挫败,抗衡中国5G技术的图谋已告失败
Mxnet imports various libcudarts * so、 libcuda*. So not found
[popular science] basic knowledge of thermal design: heat dissipation analysis of 5g optical devices
函数(基本:参数,返回值)
Threejs Internet of things, 3D visualization of farms (I)
CSDN body auto generate directory
2022-2028 global and Chinese equipment as a Service Market Research Report
Raki's notes on reading paper: code and named entity recognition in stackoverflow
电源管理总线 (PMBus)
【FineBI】使用FineBI制作自定义地图过程
Qt蓝牙:搜索蓝牙设备的类——QBluetoothDeviceDiscoveryAgent
[finebi] the process of making custom maps using finebi
机器学习 --- 神经网络
[phantom engine UE] the difference between running and starting, and the analysis of common problems
网络安全-记录web漏洞修复
程序员应该怎么学数学
Realize the attention function of the article in the applet
Setting up redis cluster cluster under Windows
Network security - record web vulnerability fixes