华为在线训练(9)

    xiaoxiao2026-04-24  5

    1、编程实现strcmp库函数 //返回1:       src>dst //返回-1:      src<dst

    //返回0:       src=dst

    int mystrcmp(char *src,char *dst) { int ret=0,i=0; while(i<strlen(src)&&i<strlen(dst)) { if(src[i]>dst[i]) { ret=1; break; } else if(src[i]<dst[i]) { ret=-1; break; } else i++; } if(i==strlen(src)||i==strlen(dst)) { if(strlen(src)>strlen(dst)) ret=1; else if(strlen(src)<strlen(dst)) ret=-1; } return ret; }2、字符串根据字典值排序 指对给定的字符串,按照首字母的字典值排序,如果首字母相同的字符串,则按照第二个字母,依次内推。 实现方法:使用strcmp()函数比较两个字符串,然后利用冒泡排序法的思想对字符串进行排序 #include<iostream> #include<string> using namespace std; int main() { char *a[10]={"dog","dear","eye","bed","do","hello","zero","fire","hc","zz" }; char *temp; for(int i=0;i<10-1;i++) { for(int j=0;j<10-i-1;j++) { if(strcmp(a[j],a[j+1])==1) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } for(i=0;i<10;i++) cout<<a[i]<<" "; return 0; }4、请编写一个函数(允许增加子函数),计算n x m的棋盘格子(n为横向的格子数,m为竖向的格子数)沿着各自边缘线从左上角走到右下角, 总共有多少种走法,要求不能走回头路,即:只能往右和往下走,不能往左和往上走。 注意:是沿着格子的边缘走,且只能向下想右走 分析: 设f(n,m)表示n*m格子的走法,向下走,格子变为(n-1)*m,走法为f(n-1,m);向右走,格子变为n*(m-1),走法为f(n,m-1)。因此会有: f(n,m)=f(n-1,m)+f(n,m-1) #include<iostream> using namespace std; int f(int n,int m) { if(n==1) //注意边界条件 return (m+1); else if(m==1) return (n+1); else return f(n,m-1)+f(n-1,m); } int main() { int n,m; while(cin>>n>>m) { cout<<f(n,m)<<endl; } return 0; }5、在字符串中找出连续最长的数字串 输出字符串中最长的数字字符串和它的长度。如果有相同长度的串,则要一块儿输出,但是长度还是一串的长度

    #include<iostream> #include<string> #include<string.h> #include<vector> #include<algorithm> using namespace std; void solve(string str) { vector<string> s; int in,i; int s_size=0; for(i=0;i<str.size();) { if(str[i]>='0'&&str[i]<='9') { in=i; do { i++; }while(str[i]>='0'&&str[i]<='9'); string temp(str,in,i-in); s.push_back(temp); s_size++; } i++; } int max=0; for(i=0;i<s.size();i++) { if(s[i].length()>max) max=s[i].length(); } for(i=0;i<s.size();i++) { if(s[i].length()==max) { cout<<s[i]; } } cout<<","<<max<<endl; } int main() { string str; while(cin>>str) { solve(str); } return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-1309162.html
    最新回复(0)