文档章节

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

春哥大魔王的博客
 春哥大魔王的博客
发布于 2017/02/27 13:32
字数 251
阅读 13
收藏 0
点赞 0
评论 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

© 著作权归作者所有

共有 人打赏支持
春哥大魔王的博客
粉丝 17
博文 123
码字总数 70008
作品 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
海量数据:判断一棵树是否为另一棵树的子树

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

一贱书生
2016/11/18
6
0
Python基础学习4:高级特性

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

Andy_Ron
2017/10/02
0
0
null >=0 ? true:false

作者:Abinav Seelan 原文链接:blog.campvanilla.com/javascript-… 在掘金前端群里(添加掘金酱:juejinjiang 入群)问了大家一个问题: 为 ,为,为什么 为? 有说 不会尝试转型,所以 成立...

YoungZ
2017/09/12
0
0
P,NP,NPC,NP-hard

P问题:存在多项式复杂度算法的问题; NP问题:可以在多项式时间验证给定解是否正确的问题; NP-hard问题:任意一个NP问题都可以多项式时间规约到问题L,则称L为NP-hard问题; NPC问题:如果...

日拱一卒
2016/10/09
12
0
Android 面试文档分享

一、概述 最近在准备面试的东西,整理了一些读书笔记分享给各位 百度网盘地址,大家可以自由下载,以下内容完全原创。 前两部分是对于一些 经典书籍的读书笔记 和 面试题,都是上学看书的时候...

泽毛
2017/11/10
0
0
《程序员代码面试指南》Python实现(个人读书笔记)

说明   最近一直在读左神的书——《程序员代码面试指南—IT名企算法与数据结构题目最优解》,为了记录自己的学习成果,并且方便以后查看,将自己读书时的想法与使用python实现的代码记录在...

qq_34342154
2017/09/09
0
0
JavaScript确定一个字符串是否包含在另一个字符串中的四种方法

一、indexOf() 1.定义 indexOf()方法返回String对象第一次出现指定字符串的索引,若未找到指定值,返回-1。(数组同一个概念) 2.语法 searchValue:字符串对象中被查找的值。 fromIndex:开...

后除
02/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

全新内存布局Android5 for one x

众所周知Android5.0默认ART模式,运行速度加倍,软件占用内存也加倍,我们one x这种元老机采用旧的内存布局,data空间2g ART模式下安装几个软件也就不够用了。最近逛国外的xda论坛,发现有大...

CrazyManDF
3分钟前
0
0
web3j转账

 web3 转账功能   为了完成以太坊交易,必须有几个先决条件   1、对方的以太坊地址   2、确定要转账的金额   3、自己地址的转账权限   4、大于转账金额的以太币,以太币转账其实就...

智能合约
4分钟前
0
0
10.28 rsync工具介绍 , rsync常用选项, rsync通过ssh同步

rsync远程同步 重点!重点!!重点!!! 例子 • rsync -av /etc/passwd /tmp/1.txt • rsync -av /tmp/1.txt 192.168.188.128:/tmp/2.txt rsync格式 • rsync [OPTION] … SRC DEST • rs......

Linux_老吴
17分钟前
0
0
iis php 环境搭建,非常详细的教程

准备篇 一、环境说明: 操作系统:Windows Server 2016 PHP版本:php 7.1.0 MySQL版本:MySQL 5.7.17.0 二、相关软件下载: 1、PHP下载地址: http://windows.php.net/downloads/releases/ph...

T_star
19分钟前
0
0
Day35 rsync通过服务同步

rsync通过服务同步 rsyncd.conf配置文件详解 port:指定在哪个端口启动rsyncd服务,默认是873端口。 log file:指定日志文件。 pid file:指定pid文件,这个文件的作用涉及服务的启动、停止等...

杉下
25分钟前
1
0
【最新最全】为 iOS 和 Android 的真机和模拟器编译 Luajit 库

编译 Luajit 库,的确是一个挑战。因为官网的教程,在当前版本的 Xcode 和 NDK 环境中,已经不适用了。以前只是编译了适用于真机的 Luajit 库。最近在尝试编译模拟器 Luajit 库,就顺便梳理了...

ios122
25分钟前
0
0
rsync至ssh同步

rsync: 文件同步工具,可实现“增量拷贝”;使用yum安装rsync包 常用选项:-a=-rtplgoD (-r同步目录,-t保持文件的时间属性,-p保持文件的权限属性,-l保持软连接,-g保持文件的属组,-o保持...

ZHENG-JY
30分钟前
0
0
TradingView 学习笔记

#前言 公司最后需要使用TradingView展示K线图走势。由于之前没接触过,拿到文档时一脸蒙逼。还好找到二篇文章+Demo代码,直接改改就行了。 #被批 由于上面的懵懂,有个问题困扰4个小时没解决...

hihubs
31分钟前
0
0
10.28 rsync工具介绍~10.31 rsync通过ssh同步

rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而...

洗香香
33分钟前
1
0
卷积为什么要旋转180度

参考《最容易理解的对卷积(convolution)的解释》 https://blog.csdn.net/bitcarmanlee/article/details/54729807 这篇博客详细讲解了“卷积”,提及了为什么要反转180度,我简述下。 1.卷积的...

datadev_sh
42分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部