zoukankan      html  css  js  c++  java
  • shorter concat [reverse longer]

    shorter concat [reverse longer]

    Description:

    Given 2 strings, a and b, return a string of the form: shorter+reverse(longer)+shorter.

    In other words, the shortest string has to be put as prefix and as suffix of the reverse of the longest.

    Strings a and b may be empty, but not null (In C# strings may also be null. Treat them as if they are empty.).
    If a and b have the same length treat a as the longer producing b+reverse(a)+b

    我的解法,让人不满意的是if和else的判断太多了。

    空字符串和非空字符串,本身是可以直接拼接的

    using System;
    using System.Linq;
    
    class ReverseLonger
    {
      public static string ShorterReverseLonger(string a, string b)
      {
          a = a ?? string.Empty;
                b = b ?? string.Empty;
                string str = string.Empty;
                if (a.Equals(string.Empty))
                {
                    if (b.Equals(string.Empty))
                    { }
                    else
                    {
                        str = string.Join(string.Empty, b.Reverse());
                    }
                }
                else
                {
                    if (b.Equals(string.Empty))
                    {
                        str = string.Join(string.Empty, a.Reverse());
                    }
                    else
                    {
                        if (a.Length < b.Length)
                        {
                            str = a + string.Join(string.Empty, b.Reverse()) + a;
                        }
                        else
                        {
                            str = b + string.Join(string.Empty, a.Reverse()) + b;
                        }
                    }
                }
                return str;
      }
    }

    其他人的解法:

    比我好的地方是,通过比较大小,之后用统一的格式来处理

    using System.Linq;
    
    class ReverseLonger
    {
      public static string ShorterReverseLonger(string a, string b)
      {
        if(a == null)
          a = string.Empty;
        if(b == null)
          b = string.Empty;
    
        if(a.Length < b.Length)
        {
          string d = a;
          a = b;
          b = d;
        }
    
        return b + (new string(a.Reverse().ToArray())) + b;
      }
    }
  • 相关阅读:
    c++链表实现学生成绩管理系统(简易版)
    IOS动画讲解
    栈的实现
    Masonry的使用
    二叉树详解-2
    二叉树详解-1
    CoreData的使用-2
    NSPredicate 详解
    CoreData的使用-1
    IOS常用手势用法
  • 原文地址:https://www.cnblogs.com/chucklu/p/4622047.html
Copyright © 2011-2022 走看看