1.1 字符串的旋转+1.2 字符串的包含

1 .1 字符串的旋转
题目描述:
给定一个字符串,要求将字符串前面的若干个字符串移到字符串的尾部。例如,将字符串“abcdef”的前三个字符‘a’、‘b’,‘c’移到字符串的尾部,那么原字符串将变成“defabc”。请写一个函数实现此功能。
解法一:蛮力移位,需要移动字符一个一个的移动到字符串的尾部。

void leftShiftOne(char* s, int n)
{char t = s[0];for(int i=1; i<n; i++){s[i-1]=s[i];}s[n-1]=t;	
}
char Roatechar(char *s, int n, int m)
{while(m--){leftShiftOne(s,n);}
}

解法二:三步反转
主要思想就是借助旋转函数,以及局部旋转和整体旋转的巧妙应用,达到最后的整体的字符串的旋转的结果。
第一步:由于m=3,可将原来的字符串分成两个部分,即“abc”和“def”。
第二步:局部旋转,即将“abc”变成“cba”和“def”变成“fed”,故整个字符串将变成为“cbafed”。
第三步:整体旋转,即“cbafed”变成“defabc”.
关键二等一步就是定义一个旋转函数,即镜面旋转,180度旋转。投叫互换的思想。

旋转函数的定义如下:

char rotateChar( char *s, int from, int to)
{while(from<to){char t=s[from];s[from++]=s[to];s[to--]=t;}
}

故主函数:

char ShiftM(char *s, int n, int m)
{m %= n;//若要左移大于n为,那么与%n是等价的。rotateChar(s, 0, m-1);rotateChar(s, m, n-1);rotateChar(s, 0, n-1);
}

举一反三:单词翻转
题目描述:输入一个英文句子,翻转句子中单词的顺序。要求单词内字符的顺序不变,句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如,输入:“I am a student.”,则输出“student. a am I”。
主要思想:
第一步就是整体翻转,即“I am a student.”变成“.tneduts a ma I”。
第二步就是局部翻转,即".tneduts"变成“student.”, “ma”变成“am”。
关键在于找空格符时,起始符和停止符两个的定位。

 class Solution {
public:string ReverseSentence(string str) {int len = str.length();if(len == 0) return "";int begin=0;int end=0;Reverse(str,0,len-1);begin=end=0;while(str[begin]!='\0'){if(str[begin]==' '){begin++;end++;}else if(str[end]==' '||str[end]=='\0'){Reverse(str,begin,--end);begin=++end;}else end++;}return str;}void Reverse(string &str,int begin,int end){while(begin < end){swap(str[begin++],str[end--]);}}
};

1.2字符串的包含
题目描述:
给定一个长字符串a和一短字符串b。请问, 如何最快的判断出短字符串b中的所有字符是否都在长字符串a中?请编写函数bool StringContain( string &a, string &b)实现此功能。
为简单起见,假设输入的字符串只包含大写英文字母。下面举几个例子。
假设a为“ABCD”,b的情况如下:
1“BAD”,真
2“BCE”,假
3“AA”,真

举一反三
变位词
题目描述:如果两个字符串的字符一样,出现次数也一样,只是出现的顺序不一样,则认为这两个字符串是兄弟字符串。例如,“bad”和”abd”即为兄弟字符串。现在提供一个字符串,请问如何在字典中迅速找到它的兄弟字符串?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480371.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文浅尝 | 利用边缘标签的网络嵌入强化方法

链接&#xff1a;https://arxiv.org/pdf/1809.05124.pdf本文主要关注Network embedding问题&#xff0c;以往的network embedding方法只将是网络中的边看作二分类的边(0,1)&#xff0c;忽略了边的标签信息&#xff0c;本文提出的方法能够较好的保存网络结构和边的语义信息来进行…

2018阿里集团中间件Java面试题(4面)

持续分享阿里技术面试 最新天猫3轮面试题目&#xff1a;虚拟机并发锁Sql防注入Zookeeper 最新阿里内推高级Java面试题 蚂蚁金服4轮面经&#xff08;Java研发&#xff09;:G1收集器连接池分布式架构 天猫研发团队&#xff08;4面全题目&#xff09;&#xff1a;并发压测Mina事…

卷积神经网络中十大令人拍案叫绝的操作

一只小狐狸带你解锁 炼丹术&NLP 秘籍作者&#xff1a;Justin ho来源&#xff1a;https://zhuanlan.zhihu.com/p/28749411前言CNN从2012年的AlexNet发展至今&#xff0c;科学家们发明出各种各样的CNN模型&#xff0c;一个比一个深&#xff0c;一个比一个准确&#xff0c;一个…

【再认识】认知智能下需要的实体知识与事件知识

1&#xff0c;知识图谱理想上双层结构&#xff0c;实际单层 知识图谱是个双层结构。模式层和实例层&#xff0c;模式层&#xff0c;又称为本体层&#xff0c;模式层分成两个部分&#xff0c;一个是概念的上下层级&#xff0c;另一个是概念之间的关系层或者概念的自身属性信息层…

python--从入门到实践--chapter 11 代码测试unittest

编写的代码需要测试是否有Bug 1.函数测试 city_functions.py def city_country(city, country):return str(city) , str(country)city_country_unittest.py import unittest #导入测试模块 from city_functions import city_country as cc class citytest(unittest.TestC…

刘升平 | 基于知识图谱的人机对话系统

本文转载自公众号&#xff1a;AI科技大本营。 分享嘉宾 | 刘升平&#xff08;云知声 AI Labs 资深技术专家&#xff09;来源 | AI 科技大本营在线公开课人机对话系统&#xff0c;或者会话交互&#xff0c;有望成为物联…

最强Java面试题全部合集,涵盖BAT大厂面试必考的9大技术!-强烈建议收藏

过去2年我持续分享了BAT TMD为代表的大厂最新面试题目&#xff0c;特别是蚂蚁金服、天猫、淘宝、头条、拼多多等Java面试题目。 过去2年&#xff0c;我已经成功的帮助了部分同学进入了大厂。 2020开始&#xff0c;我依然会为大家带来最新的大厂现场面试专场题目&#xff0c;希…

杨强教授新番!破解机器学习数据孤岛和数据保护难题

一只小狐狸带你解锁 炼丹术&NLP 秘籍移动互联技术这把“温柔刀”&#xff0c;带来巨大便利之余&#xff0c;也将我们的个人数据放进了橱窗&#xff0c;为“推动信息技术发展”而供人调取。我们都清楚网络“裸奔”的行为很混乱&#xff0c;但你知道到底有多乱吗&#xff1f;…

POJ 3122 分披萨(二分查找)

题目链接&#xff1a;http://poj.org/problem?id3122 题目大意&#xff1a; 有 n 块披萨&#xff08;大小不一样&#xff09;&#xff0c; f 个人分&#xff0c;包含主人自己 f1 人&#xff1b; 每人吃的披萨必须是一块披萨上切下来的。每个人吃的披萨相等&#xff0c;披萨可…

没错,继事理图谱后,我们又搞事情了:数地工场自然语言处理语义开放平台正式对外发布!

2020年的钟声即将敲响&#xff0c;在这辞旧迎新之际&#xff0c;经过近几年在Fintech领域中的自然语言处理技术研发和产品迭代积累&#xff0c;数据地平线Datahorizon迎来重大更新&#xff0c;以数据、事件、逻辑的语义toolbox为愿景的数地工场开放平台V1.0正式对外发布。 数地…

(C语言)链表的实现集合的相关操作

原文链接&#xff1a;https://blog.csdn.net/kobe_jr/article/details/80543611 集合的特征&#xff1a;确定性/ 互异性/ 无序性。常见的操作&#xff1a;1、查找集合中是否包含这个数据元素&#xff1a;Contains();2、添加一个新成员数据&#xff0c;集合中不能存在这个元素。…

论文浅尝 | Understanding Black-box Predictions via Influence Func

Cite: Koh P W, Liang P. Understanding black-box predictions via influence functions[J]. arXiv preprint arXiv:1703.04730, 2017.链接&#xff1a;https://arxiv.org/pdf/1703.04730GitHub项目地址&#xff1a;http://bit.ly/gt-influence本文使用影响函数(Influence fun…

ICLR2020满分论文 | 为什么梯度裁剪能加速模型训练?

一只小狐狸带你解锁 炼丹术&NLP 秘籍作者&#xff1a;苏剑林&#xff08;来自追一科技&#xff0c;人称“苏神”&#xff09;前言需要许多时间步计算的循环神经网络&#xff0c;如LSTM、GRU&#xff0c;往往存在梯度爆炸的问题。其目标函数可能存在悬崖一样斜率较大的区域&…

快手高级Java四轮面试题:设计模式+红黑树+Java锁+Redis等

快手Java一面&#xff08;一个小时十分钟&#xff09; 1.自我介绍 2.说说B树和B树的区别&#xff0c;优缺点等&#xff1f; 3聊聊Spring&#xff0c;主要IOC等等 4多线程JUC包下的一些常见的类&#xff0c;比如CountDownLatch、Semaphore等 5.锁的概念&#xff0c;锁相关的…

数据结构--跳表SkipList

对单链表查找一个元素的时间复杂度是 O(n)通过对链表建立多级索引的结构&#xff0c;就是跳表&#xff0c;查找任意数据、插入数据、删除数据的时间复杂度均为 O(log n)前提&#xff1a;建立了索引&#xff0c;用空间换时间的思路(每两个节点建立一个索引)索引节点总和 n/2n/4n…

领域词汇知识库的类型、可用资源与构建技术漫谈

词是语言系统中重要的语言单元&#xff0c;词语是开展文本处理的基础&#xff0c;在语义表示上具有比字符更丰富的表达能力。词语具有领域特性&#xff0c;不同的领域具有不同的词汇体系&#xff0c;如军事领域、医疗领域、公共治安领域、金融领域之间存在着很大的差异性。这种…

C语言实现的数据结构之------哈希表

原文链接&#xff1a;https://blog.csdn.net/smstong/article/details/51145786 哈希表原理 这里不讲高深理论&#xff0c;只说直观感受。哈希表的目的就是为了根据数据的部分内容&#xff08;关键字&#xff09;&#xff0c;直接计算出存放完整数据的内存地址。 试想一下&a…

论文浅尝 | EARL: Joint Entity and Relation Linking for QA over KG

Mohnish Dubey, Debayan Banerjee, Debanjan Chaudhuri, Jens Lehmann: EARL: Joint Entity and Relation Linking for Question Answering over Knowledge Graphs. International Semantic Web Conference (1) 2018: 108-126链接&#xff1a;https://link.springer.com/conten…

百度高级Java三面题目!涵盖JVM +Java锁+分布式等

百度高级Java一面 自我介绍 对象相等的判断&#xff0c;equals方法实现。 Hashcode的作用&#xff0c;与 equal 有什么区别&#xff1f; Java中CAS算法&#xff1f; G1回收器讲一下&#xff1f; HashMap&#xff0c;ConcurrentHashMap与LinkedHashMap的区别 如何在多线程环…

python--从入门到实践--chapter 12 pygame_Alien_Invasion

安装pygame包&#xff0c;把安装好的包copy一份到pycharm工程目录下&#xff0c;不然找不到pygame包 抄一遍书上的代码&#xff1a; settings.py class Settings():def __init__(self):self.screen_width 1200self.screen_height 800self.bg_color (255, 255, 255)self.s…