• 构造字符串的一个模板


    也是比赛时候的一道题目, 但是这么构造,超时,

    不过也是一个构造字符串的好的程序。贴一下模板的吧

    s[]数组,刚开始是 输入一个字符串,get()函数的作用是 按照字典序,依次构造这个字符串,并存储在s[]数组中.

    直到所有的字符串构造 完成。

     1 #include <iostream>
     2 #include <stdio.h>
     3 #include <string.h>
     4 #include <string>
     5 #include <algorithm>
     6 using namespace std;
     7 const int N=1050;
     8 char s[N];
     9 int l;
    10 int get()
    11 {
    12     int i = l-1;
    13     while(i>0&&s[i-1]>=s[i])
    14     i--;
    15     if (!i) return 0;
    16     int mp = i;
    17     for (int j = i+1;j < l; j++)
    18     {
    19         if (s[j]<=s[i-1])
    20         continue;
    21         if (s[j]<s[mp])
    22         mp = j;
    23     }
    24     char ch;
    25     ch = s[mp];
    26     s[mp] = s[i-1];
    27     s[i-1] = ch;
    28     sort(s+i,s+l);
    29     return 1;
    30 
    31 }
    32 int main()
    33 {
    34     int n,m;
    35     while(~scanf("%d%d",&n,&m))
    36     {
    37 
    38         if(n==0&&m==0)
    39         break;
    40         int x,cnt = 0;
    41         for (int i = 0;i < n; i++)
    42         {
    43             scanf("%d",&x);
    44             while(x--)
    45             s[cnt++] = 'a'+i;
    46         }
    47         s[cnt] = '';
    48         l = strlen(s);
    49         sort(s,s+l);
    50         int num = 0;
    51         if(m==0)
    52         puts(s);
    53         else
    54         while(get())
    55         {
    56 
    57             if (num==m-1)
    58 
    59             {
    60                 printf("%s
    ",s);
    61              break;
    62             }
    63              num++;
    64         }
    65     }
    66     return 0;
    67 }
  • 相关阅读:
    SD_WebImage-03-多线程+下载任务放入非主线程执行
    NSOperationQueue_管理NSOperation-02-多线程
    CALayer小结-基本使用00-UI进阶
    XMPP-UI进阶-01
    XMPP总结-UI进阶-00
    UI控件总结-UI初级
    转场动画-01-day4
    暂停-开始动画-核心动画-08-day4
    核心动画-04-CALayer隐式动画
    Android开发技术周报 Issue#71
  • 原文地址:https://www.cnblogs.com/bfshm/p/3621710.html
Copyright © 2020-2023  润新知