本题先寻找字符串中0变1,或者1变0的位置作为分隔位置。然后从这个分隔位置同时向左、右两侧搜索。

找到的左连续串和右连续串,都进行累计。

public class Solution
{
public int CountBinarySubstrings(string s)
{
//s = "00110011";
//这道题的思路是先找到分割点,然后用分割点,向两边同时搜索,找到连续串
var len = s.Length;
if (len < )
{
return ;
}
var sum = ;
var last = s[].ToString(); for (int i = ; i < len; i++)
{
var cur = s[i].ToString();
if (cur != last)
{
int a = i - ;//向左
int b = i;//向右
while (a >= && b <= len - )
{
var left = s[a].ToString();
var right = s[b].ToString();
if (last == left && cur == right)
{
sum++;
last = left;
cur = right;
a--;
b++;
}
else
{
break;
}
}
}
last = s[i].ToString();
} return sum;
}
}

最新文章

  1. 使用NVelocity生成内容的几种方式
  2. codecademy-command line-inputoutput
  3. java中重载和覆盖(又称重写)的区别
  4. synchronized锁自旋
  5. 数据库必会必知 之 SQL四种语言:DDL DML DCL TCL(转)
  6. 如何添加真机调试的iOS设备
  7. Js 对象三
  8. XC文件管理器(Android应用)
  9. CCNP路由实验(1) -- EIGRP
  10. SSM整合XML版(Maven Project)
  11. 配置php支持gd函数模块
  12. SSE图像算法优化系列十七:多个图像处理中常用函数的SSE实现。
  13. JAVA并发-基于AQS实现自己的显示锁
  14. ionic cordova screenshot 使用和操作
  15. 【剑指offer】复杂链表的复制
  16. ural1297
  17. m3u8编码视频webgl、threejs渲染视频纹理demo
  18. Visual Studio的安装应用及单元测试
  19. 编译 php-memcache 扩展时提示Cannot find autoconf
  20. Sprint11

热门文章

  1. 27-THREE.JS 平面
  2. flash代码
  3. 用同步的方式执行jQuery异步动画
  4. jsp的组成和执行过程
  5. Activity has leaked window that was originally added(以解决)
  6. [面试时]我是如何讲清楚TCP/IP是如何实现可靠传输的 转
  7. MPLS基础一
  8. Kali Linux ettercap的使用
  9. 同一局域网环境下的arp欺骗和中间人攻击(mac)
  10. 【MFC】MFC中窗口重绘