【MATLAB编程实例练习】-(15)红绿色方块染色问题

题目描述:
       有一些红色和绿色的方块,从左到右排成一行。接下来你可以用红色或绿色对任意一个方块进行染色,使方块原有的颜色被覆盖掉。为了使在完成所有的染色操作后,红色方块都比绿色方块更靠近左侧,问至少需染几个方块。
在这里插入图片描述
代码如下:

%动态规划
blocks = input('输入方块颜色的字符串:');
%dp的初始值为所有红色块都位于绿色块右侧时,需染涂的方块个数
dp(1) = sum(blocks=='R');

for i = 1:length(blocks)
    
    if blocks(i) == 'G'
        dp(i+1) = dp(i) +1;
    else
        dp(i+1) = dp(i) -1;
    end
    
end

str = ['至少需染',num2str(min(dp)),'个方块',];
disp(str);

测试:

>> red_green_blocks
输入方块颜色的字符串:'RGRGR'
至少需染2个方块
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值