给定两个字符串str1和str2,查找str2在str1中出现的位置
如:str1为"ABCDLANCEXYZ",str2为"LANCE",则返回位置5。如果没有找到,返回-1。(起始位置从1开始)
// findSubStrPosition.c
#include <stdio.h>int findSubStrPosition(const char *pStr1, const char *pStr2)
{int len1 = strlen(pStr1);int len2 = strlen(pStr2);if (len1 < len2)return -1;int i = 0;for ( ; i < len1; i++){int j = 0;if (pStr1[i] != pStr2[j])continue;while(j < len2 & i+j < len1){j++;if (pStr1[i+j] != pStr2[j])break;}if (j == len2)return i+1 ; // start 1}return -1;
}int main()
{const char *str1 = "ABCDLANCEXYZ";const char *str2 = "LANCE";int position = 0;position = findSubStrPosition(str1, str2);printf("the substring position is %d\n", position);return 0;
}
// findSubStrPosition.cpp
#include <iostream>
#include <string>bool isSubstr(std::string str1, std::string str2)
{if (str1.length() < str2.length())return false;int index = 0;while(index < str2.length()){if(str2[index] == str1[index])index++;elsereturn false;}return true;
}int findSubStrPosition(std::string str1, std::string str2)
{int index = 0;while(index < (str1.length() - str2.length())){if (isSubstr(str1.substr(index), str2))return index + 1; // start 1elseindex++;}return -1;
}int main()
{std::string str1 = "ABCDLANCEXYZ";std::string str2 = "LANCE";int position = 0;position = findSubStrPosition(str1, str2);std::cout<< "the substring position is "<< position << std::endl;//std::cout<< "the substring position is "<< str1.find(str2) << std::endl;return 0;
}
给定两个字符串str1和str2,查找str2在str1中出现的位置相关推荐
- 2021-11-25:给定两个字符串s1和s2,返回在s1中有多少个子串等于s2。来自美团。
2021-11-25:给定两个字符串s1和s2,返回在s1中有多少个子串等于s2.来自美团. 答案2021-11-25: 改写kmp算法. next数组多求一位. 比如:str2 = aaaa, 那么 ...
- 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 不能直接将输入的字符串转换为整数形式. 思路:将字符串从最小位进行相加,最后形成的字符串倒置 class Solution {pu ...
- 给定两个字符串,确定其中一个字符串的字符重新排列后,能否变成另一个字符串...
1 /* 2 * 给定两个字符串,确定其中一个字符串的字符重新排列后,能否变成另一个字符串,其实也就是变位词问题 3 * 比如说 a='abc' b='acb'是可以通过a变成b的 4 * 思路; 5 ...
- 随笔-给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和
题目:给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 注意: num1 和num2 的长度都小于 5100. num1 和num2 都只包含数字 0-9. num1 和num2 ...
- LeetCode||有效的字母异位词(排列)--给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词
原题链接:https://leetcode-cn.com/problems/valid-anagram 题目描述: 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词. 示 ...
- 算法019:字符串轮转。给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串)。
题目:字符串轮转.给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串).示例1:输入:s1 = "waterb ...
- 给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。...
给定两个字符串 s 和 t,它们只包含小写字母.字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母.请找出在 t 中被添加的字母. 示例: 输入: s = "abcd" ...
- 找不同(给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。)
给定两个字符串 s 和 t,它们只包含小写字母. 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母. 请找出在 t 中被添加的字母. 示例: 输入: s = "abcd&quo ...
- JAVA算法:给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合(JAVA)
JAVA算法:给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合(JAVA) 给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合.. 当 n = 4 ...
最新文章
- 你为什么应该经常访问招聘网站?招聘网站至少有4个方面的价值!
- 【怎样写代码】工厂三兄弟之抽象工厂模式(四):抽象工厂模式
- 支付宝支付 第十二集:狂神、飞哥支付宝支付配置代码(免费资源,拿走不谢)
- sharepoint的入门知识
- 探秘Tomcat(一)——Myeclipse中导入Tomcat源码
- python图片解析库_python用来获得图片exif信息的库实例分析
- 烽火MAS短信服务器配置相关
- 搭乘百度语音识别技术,录音啦识别率最高可达95%
- 双蓝牙(HC-05、HC-06)AT指令配对教程
- [渝粤教育] 天津科技大学 人工智能导论 参考 资料
- eclipse打断点的调试
- Kali字典正确使用姿势
- 你真的了解“药品追溯码”吗?
- 对List进行多维度排序
- 牛逼的在线书籍制作.
- 聊聊vscode配置settings.json知其所以然(附大量配置)
- 69IT论坛-69It.com
- debian查看linux语言环境,如何在Debian中安装桌面和中文环境
- vue 使用百度地图api_使用百度地图api来实现ip高精度定位
- 视觉机器学习20讲-MATLAB源码示例(3)-回归学习算法
热门文章
- 网上副业靠谱吗?有哪些靠谱的网上副业可以做?
- JUnit4和JUnit5的主要区别
- Windows11 的体验
- 安装WinPython
- 实战-Android开机进入Launcher前黑屏问题
- vue3.2 setup语法糖,你值得拥有
- 终极方法, 解决Duplicate class 开头的报错内容全过程详解 - Duplicate class com.github.promeg.tinypinyin
- BugKu:1和0的故事
- 高老师的架构设计_隽语集(BB_0901)
- 模拟器安装应用:INSTALL_FALLED_INTERNAL_ERROR