文档章节

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

春哥大魔王的博客
 春哥大魔王的博客
发布于 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

© 著作权归作者所有

共有 人打赏支持
春哥大魔王的博客
粉丝 19
博文 138
码字总数 82210
作品 0
海淀
程序员
(三)Boost库之字符串处理

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

fanzhao
2014/03/22
3.3K
0
php 字符串常用方法

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

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

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

xumaojun
04/01
0
0
Python基础学习4:高级特性

切片 (list, tuple, 字符串) / 从索引0开始取,直到索引3为止,但不包括索引3。 倒数第一个 前10个数,每两个取一个 所有数,每5个取一个 迭代() 任何 可迭代对象 都可以,如:list, tuple, ...

Andy_Ron
2017/10/02
0
0
海量数据:判断一棵树是否为另一棵树的子树

T1是一棵含有几百万个节点的树,T2含有几百个节点。判断T2是否是T1 的子树。 首先考虑小数据量的情况,可以根据树的前序和中序遍历所得的字符串,来通过判断T2生成的字符串是否是T1字符串的子...

一贱书生
2016/11/18
6
0

没有更多内容

加载失败,请刷新页面

加载更多

一步步编写自己的PHP爬取代理IP项目(二)

这一章节我们正式开展我们的爬虫项目,首先我们先要知道哪个网站能获取到免费代理IP,目前比较火的有西刺代理,快代理等,这里我们拿西刺代理作为例子。 这里就是一个个免费的IP地址以及各自...

NateHuang
29分钟前
1
0
11-利用思维导图梳理JavaSE-Java的反射机制

11-利用思维导图梳理JavaSE-Java的反射机制 主要内容 1.反射与Class类 1.1.反射概念 1.2.Class类 1.3.实例化Class类 1.4.反射的作用 1.5.Class对象的作用 2.反射的深入应用 2.1.调用无参的成...

飞鱼说编程
35分钟前
1
0
How to serve the world from home computer?

最近在开发web应用,很想知道,通过公网来访问,效果会不会好。今天在做家务的时候,突然想到,如果我自己写一个ip转发的工具,不就可以实现了吗?但是转过头一想,这么大众的想法,怎么会没...

pearma
51分钟前
1
0
今天在码云遇到一个很有意思的人 for Per.js

今天在码云遇到一个很有意思的人,他在我的Per.js项目下面评论了一句,大意为“你试试这句代码,看看速度到底是你快还是Vue快”【当然,这个评论被我手残不小心删掉了...】。 然后我就试了,...

Skyogo
今天
50
0
Java -------- 首字母相关排序总结

Java 字符串数组首字母排序 字符串数组按首字母排序:(区分大小写) String[] strings = new String[]{"ba","aa","CC","Ba","DD","ee","dd"}; Arrays.sort(strings); for (int i ...

切切歆语
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部