字符串

作者: 逍遥_9353 | 来源:发表于2018-04-27 09:42 被阅读49次

/*

字符串的旋转

给定一个字符串,要求将字符串前面的若干个字符移到字符串的尾部。例如,将字符串

"abcdef"的前3个字符'a','b','c'移到字符串的尾部,那么原字符串将变成'defabc',

请写一个函数实现此功能。

*/

/*

思路:

    定义一组字符串,调用两个函数,一个将一个字符移到末尾,

另一个调用若干次使得需要移到的若干个字符移动到字符串

尾部。

*/ 

#include<iostream>

#include<string>

using namespace std;

void LeftShifOne(string &s,int n)//调用函数将一个字符移到尾部

{

char t=s[0];//保存首字符

for(int i=1;i<n;i++)

  s[i-1]=s[i];

  s[n-1]=t;

}

void LeftRotatestring(string &s,int n,int m)//调用函数m次,使得m个字符移到字符串尾部

{

while(m--)

{

LeftShifOne(s,n);

}

cout<<s<<endl;

}

int main()

{

    string s;//定义字符串

    int  n,m;//定义字符串的长度,移动的长度

cin>>s>>m;

n=s.length();//字符串的长度

    LeftRotatestring(s,n,m);//调用函数

return  0;

/*

最大连续乘积子数组

    给定一个浮点数组,任意取出数组中的若干个连续的数相乘,

请找出其中乘积最大的子数组的积。例如,给定数组{-2.5,4,

0,3,0.5,8,-1},则取出的最大乘积子数组为{3,0.5,8},那么最大的乘积为12.

*/

/*

思路:

    问题可以简化为:在数组中找到一个子数组,使得它的乘积最

大,同时再找到另一个子数组,使得它的乘积最小(含有负数情

况),也就是说不但需要记录最大乘积也需要记录最小乘积。

*/ 

#include<iostream>

using namespace std;

double  maxstring(double *s,int length)

{

    double maxend=s[0];

    double minend=s[0];

    double maxresult=s[0];

for(int i=1;i<length;i++)

{

  double end1=maxend*s[i],end2=minend*s[i];

  maxend=max(max(end1,end2),s[i]);

  minend=min(min(end1,end2),s[i]);

  maxresult=max(maxresult,maxend);

}

return maxresult;

}

int main()

{

double s[100],length;

cin>>length;

for(int i=0;i<length;i++)

cin>>s[i];

cout<<maxstring(s,length)<<endl;

return 0;

}

/*

字符串的查找

    假设现在有这样一个问题:有一个文本串S和一个模式串P,

要查找P在S中的位置(第一个字符的位置)

*/

/*

思路:

    定义两组一维数组,如果当前字符匹配成功,则继续匹配下

一个字符;如果匹配失败则一个回溯,一个被置为0.倘若所

有都匹配成功则返回最初第一个字符位置,否则则返回-1.

*/

#include<iostream>

#include<string>

using namespace std;

int main()

{

    string a,b;

    int i,j;

    cin>>a>>b;

while(i<a.length() && j<b.length() )

{

if(a[i]==b[j])

{

i++;

j++;

}

else

{

i=i-j+1;

j=0;

}

}

if(j==b.size())

cout<<i-j<<endl;

else

cout<<-1<<endl; 

return 0;

}

相关文章

  • Javascript知识点整合

    字符串 单行字符串: ‘字符串’或“字符串” 多行字符串: `多行字符串` 字符串操作: 字符串连接‘+’号 长度...

  • C++基础字符串

    字符串的构造 字符串特性描述 字符操作 字符串赋值 字符串连接 字符串比较 字符串查找 字符串替换 字符串删除 字...

  • iOS中的NSString与NSMutableString

    字符串的创建 字符串读写 字符串的比较 字符串的搜索 字符串截取 字符串替换 字符串与路径 字符串转换 NSMut...

  • iOS NSString用法总结

    字符串属性 字符串截取 字符串比较 字符串搜索 字符串拼接 字符串基本类型转换 字符串分行,分段 字符串列举(按条...

  • php 字符串常见方法汇总

    字符串拼接 字符串检索 字符串截取 字符串替换 字符串大小写转化 字符串转数组 字符串格式化

  • iOS 字符串截取、iOS 字符串替换、iOS 字符串分隔、iO

    iOS之字符串截取、iOS 字符串替换、iOS字符串分隔、iOS之字符串匹配、截取字符串、匹配字符串、分隔字符串 ...

  • PHP中字符串函数库常用函数解析 -- PHP 学习 (十一)

    常用字符串函数分类: 字符串长度, 字符串查找, 字符串大小写转换, 字符串截取, 字符串 ASCII, 字符串加...

  • Kotlin语言(二):字符串类型

    1、字符串定义 2、字符串删除空格 3、字符串比较 4、字符串切割 5、字符串截取 6、字符串替换 7、字符串模板

  • 字符串扩展

    求字符串大小 字符串解码、转换 字符串截取 字符串汉字处理 字符串 Mac地址 字符串进制转换

  • 2020-09-30字符串

    day8-字符串 字符串的操作 in 和 not in字符串1 in 字符串2 - 判断字符串1是否是字符串...

网友评论

本文标题:字符串

本文链接:https://www.haomeiwen.com/subject/kuxblftx.html