zoukankan      html  css  js  c++  java
  • Best Cow Line (POJ 3617)

    题目: 给定长度为N的字符串S,要构造一个长度为N的字符串T。起初,T是一个空串,随后反复进行下列任意操作。

      ·从S的头部删除一个字符,加到T的尾部

      ·从S的尾部删除一个字符,加到T的尾部

      目标是要构造字典序尽可能小的字符串T。

     1 #include "iostream"
     2 #include "cstring"
     3 #include "vector"
     4 
     5 using namespace std;
     6 #define MAX_N 1000
     7 
     8 void solve(int N,char *S) {
     9     int a = 0, b = N - 1;
    10     while (a<=b) {
    11         bool left = false;
    12         /*
    13             1:当出现相同字母出现要判断内层最小字符所以需要嵌套循环
    14         */
    15         for (int i = 0; a + i <= b;i++) {
    16             if (S[a+i]<S[b-i]) {
    17                 left = true;
    18                 break;
    19             }
    20             else if (S[a+i]>S[b-i]) {
    21                 left = false;
    22                 break;
    23             }
    24         }
    25         //a,b的坐标已经发生位移
    26         if (left) putchar(S[a++]);
    27         else putchar(S[b--]);
    28     }
    29     putchar('
    ');
    30 }
    31 
    32 int main() {
    33     int N;
    34     char S[MAX_N+1];
    35     cin >> N >> S;
    36     solve(N,S);
    37     system("pause");
    38 }
    View Code
    • 里面的一层循环,内层数据判断大小选择左右方向输出。(值得在以后代码中借鉴,写的很简练!)
  • 相关阅读:
    animation-fill-mode
    css3 media queries
    三列,左右两列宽度固定,中间宽度自适应
    两列布局,一列定宽,一列宽度自适应
    css3 animation
    transition和animation区别
    transform 和 transition
    弹出框样式
    python map和filter函数
    leetcode Z字形字符串
  • 原文地址:https://www.cnblogs.com/sky-z/p/5594835.html
Copyright © 2011-2022 走看看