C++求解字符串(最小子字符串,最大子字符串,删除指定字符串)

#include <iostream>#include <string.h>#define SIZE 10#define MAXVALUE 0x7fffffffusing namespace std;//题目是:求一个字符串中最小字串.//求最小字串,比求最大字串难的多,,下面有我的求最大字串代码,我没有想到更好的方法,下面的这个方法虽然空间复杂度太大,可是时间复杂度是比较快的。template<typename T>struct Node{T data;//数据int index;//保存下标。};template<typename T>class MyNode{public:MyNode(T *a=NULL,int sz = SIZE,T a1=T(),T a2=T())//开始我的结构,将包含a1,a2的所有位置都存储在节点里面。{node = new Node<T>[sz];size=0;for(int i=0;i<sz;i++){if(a[i]==a1){node[size].data = a1;node[size].index = i;size++;}if(a[i]==a2){node[size].data = a2;node[size].index = i;size++;}}}int Mindex(int &x,int &y)//得到最小子串的下标x,y。{int n = size-1;int min=MAXVALUE;for(int i=n;i>0;i–){for(int j=i-1;j>=0;j–){if(node[i].data!=node[j].data){if((node[i].index-node[j].index)<min){min = node[i].index-node[j].index;y = node[i].index;x = node[j].index;}}}}return 0;}char *GetStrMin(int x,int y,char *str)//跟据下标得到最小字符串.{char *p = str;p += x;*(str+y+1)='\0';return p;}private:int size;Node<T> *node;};int main(){char a[]="cbbbbbbaaaaabbbc";MyNode<char> mynode(a,strlen(a),'a','c');//这里ac的顺序不用考虑.int x,y;mynode.Mindex(x,y);cout<<mynode.GetStrMin(x,y,a)<<endl;return 0;}———————————————————-#include <iostream>#include <string.h>//此处是最大字串的求解,较之最小字符串的求解要简单的多.using namespace std;char* MinStr(char *str,char a1,char a2){char *p = str;char *q = str+strlen(str)-1;while(1){if(*p==a1 || *p==a2)break;p++;}while(1){if(((*p==a1)&&(*q==a2)) || ((*p==a2)&&(*q==a1)))break;q–;}*q='\0';return p;}int main(){char a[]="babbbbbbbcc";cout<<MinStr(a,'a','c')<<endl;return 0;}—————————————————————-#include <iostream>using namespace std;//在字符串中删除特定的字符(字符串)。//题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。//例如,输入”They are students.”和”aeiou”,//则删除之后的第一个字符串变成”Thy r stdnts.”。char *Grial(char *str,char *s1){char *p = str;char *q = s1;while(*q!='\0'){while(*p!='\0'){while(*p!=*q && *p!='\0'){p++;}char *m = p;while(*m!='\0'){*m=*(m+1);m++;}}q++;p=str;}return str;}int main(){char a[]="123456 23A AB234";char b[]="23";cout<<Grial(a,b)<<endl;}

只有这样才不会被“不可能”束缚,才能不断超越自我。

C++求解字符串(最小子字符串,最大子字符串,删除指定字符串)

相关文章:

你感兴趣的文章:

标签云: