博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基础算法----判断字符串是否为另一个字符串的真子集
阅读量:6710 次
发布时间:2019-06-25

本文共 1930 字,大约阅读时间需要 6 分钟。

hot3.png

思想

判断字符串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

输出

非真子集

源码

转载于:https://my.oschina.net/u/1000241/blog/847010

你可能感兴趣的文章
python 异常处理
查看>>
GIL全局解释器锁
查看>>
Apache2.4使用require指令进行访问控制--允许或限制IP访问/通过User-Agent禁止不友好网络爬虫...
查看>>
PH_Pooled Featrues Classification MIREX 2011 Submission
查看>>
go中的线程的实现模型-P G M的调度
查看>>
zoj Gao The Sequence
查看>>
python单例模式的实现
查看>>
laravel3中文文档是迈入laravel4的捷径
查看>>
白钰铭的第五次作业
查看>>
读取日志文件,搜索关键字,打印关键字前5行。yield、deque实例
查看>>
(转载) ExtJs大比拼JQuery:Dom文档操作
查看>>
使Android开发方便快捷的8个好工具
查看>>
递归与非递归遍历
查看>>
Nagios图像绘制插件PNP4Nagios部署和测试
查看>>
在SqlServer2008R2中,在一张表上加上insert、update、delete触发器(带游标)
查看>>
常用模块--- 正则模块 正则表达式 re 模块
查看>>
图解aclocal、autoconf、automake、autoheader、configure
查看>>
chapter 17
查看>>
C/C++ cast
查看>>
jfinal的controller默认访问的方法是什么
查看>>