文档章节

基础算法----判断字符串是否为另一个字符串的真子集

春哥大魔王的博客
 春哥大魔王的博客
发布于 2017/02/27 13:32
字数 251
阅读 13
收藏 0

思想

判断字符串strA是否是strB的真子集字符串,思想是避免两个嵌套循环,可以根据char值判断,对比值的大小(我这里假定大字符串是一个递增有序字符串),子串值大于父串值则索引后移,反之迁移;

实现

            string strFather = "abcdefs";
            string strSon = "bbdsu";
            bool result = checkIsSon(strFather, strSon);
            if (result) System.Console.WriteLine("是真子集");
            else System.Console.WriteLine("非真子集");

        #region 字符串是否是另一个字符串的真子集
        static bool checkIsSon(string strFather, string strSon)
        {
            int finalCount = 0;
            char[] arrFather = strFather.ToArray();
            char[] arrSon = strSon.ToArray();
            for (int i = 0; i < arrSon.Length; i++)
            {
                int son = arrSon[i];
                int father = arrFather[i];
                if (son == father)
                {
                    finalCount += 1;
                }
                else if (son >= father)//向后找
                {
                    for (int j = i; j < arrFather.Length; j++)
                    {
                        if (son == arrFather[j])
                        {
                            finalCount += 1;
                            break;
                        }
                        if (arrFather[j] > son)
                        {
                            return false;
                        }
                    }
                }
                else if (son < father)//向前找
                {
                    for (int j = i; j > i; j--)
                    {
                        if (son == arrFather[j])
                        {
                            finalCount += 1;
                            break;
                        }
                        if (arrFather[j] < son)
                        {
                            return false;
                        }
                    }
                }
            }
            return finalCount == arrSon.Length;
        }
        #endregion

输出

非真子集

源码

http://git.oschina.net/aspnet/Suan-Fa

© 著作权归作者所有

共有 人打赏支持
春哥大魔王的博客
粉丝 21
博文 171
码字总数 120090
作品 0
海淀
程序员
私信 提问
Python容器:列表、元组、字典、集合

文章目录 序言 此文章针对有一定基础的人,简明扼要的介绍字符串、列表、元组、字典、集合的概念和常用操作,以备复习巩固之用。 底层的基本数据类型:布尔型,整形,浮点型以及字符串类型。...

Eric Leee
2018/12/09
0
0
(三)Boost库之字符串处理

字符串处理一直是c/c++的弱项,stringalgo库很好的弥补了这一点。 stringalgo 库算法命名规则: 前缀i : 有这个前缀表名算法的大小写不敏感,否则大小写敏感 后缀copy: 有这个后缀表明算法不...

fanzhao
2014/03/22
3.3K
0
org.apache.commons 常用工具类

一. org.apache.commons.io.IOUtils closeQuietly 关闭一个IO流、socket、或者selector且不抛出异常。通常放在finally块。 toString 转换IO流、 Uri、 byte[]为String。 copy IO流数据复制,...

sprouting
2018/08/18
0
0
php 字符串常用方法

1.判断一个字符串的长度:int strlen(string $string) 判断一个中文字符串长度 mb_strlen() 判断一盒字符串由多少个单词组成(通常以空格划分单词)strwordcount() 2.字符串截取和查找 从字...

阿法
2018/01/31
0
0
【算法25】对称子字符串的最大长度

【题 目】输入一个字符串,输出该字符串中最大对称子串的长度。例如输入字符串:“google”,该字符串中最长的子字符串是“goog”,长度为4,因而输出为4。   【思 路1】一看这题就是遍历!...

xumaojun
2018/04/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

都996了,研发效能还是提不起来,关键在这里

研发效能的提升必须落实为团队需求、协作和工程技术等实践。接下来的几篇文章,我将结合不同BU的案例,介绍研发效能提升的具体实践。 本篇将从团队协作的实践开始,通过可视化端到端的价值流...

阿里云官方博客
8分钟前
1
0
CentOS开机自启SVN

安装好 svn 服务后,默认是没有随系统启动自动启动的, CentOS 7 的 /etc/rc.d/rc.local 是没有执行权限的, 系统建议创建 systemd service 启动服务 于是查看 systemd 里 svn 的配置文件 /l...

临江仙卜算子
10分钟前
0
0
redo和undo区别讨论

英文解释: 名词:两种流程,redo重做流程,undo撤销还原流程;或则是redo日志与undo段的简称 动词:redo即重做,undo即撤销还原。 翻译有时候为了简单,常把动词和名称混用。不同场景不同的...

突突突酱
22分钟前
0
0
shell实例100例《二》

11、题目要求 写一个脚本实现如下功能: 输入一个数字,然后运行对应的一个命令。 显示命令如下: cmd meau* 1 - date 2 - ls 3 - who 4 - pwd 当输入1时,会运行date, 输入2时运行ls, 以此类...

寰宇01
23分钟前
0
0
Angular在页面加载很慢的时候,会出现双花括号的问题

我们知道在应用的页面或者组件需要加载数据时,浏览器和angular渲染页面都需要消耗一定的时间。这里的间隔可能很小,甚至让人感觉不到区别;但也可能很长,这样会导致让我们的用户看到了没有...

孟飞阳
24分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部