快速拼凑字符串

namespace StringJoin {
    class Program {
        static void Main(string[] args) {
        List<Product> products=new List<Product>()
        {
            new Product(){ProductID=1,ProductName="Iphone5s"},
            new Product(){ProductID=2,ProductName="Iphone6s"}
        };

            //传统的拼凑
            string _productid = "";
            foreach (var product in products)
            {
                if (_productid != "")
                {
                    _productid = _productid + "," + product.ProductID;
                }
                else
                {
                    _productid = product.ProductID.ToString();
                }
            }
            Console.WriteLine(_productid);
            //委托操作
            _productid = "";
            products.ForEach(p =>
            {
                if (_productid != "") {
                    _productid = _productid + "," + p.ProductID;
                } else {
                    _productid = p.ProductID.ToString();
                }
            });
            Console.WriteLine(_productid);

            //linq string.join
            _productid = "";
            //string.Join("", s.Select(it => string.IsNullOrWhiteSpace("") ? it : "" + "," + it));
            _productid=string.Join(",", products.Select(it => it.ProductID.ToString()));

            Console.WriteLine(_productid);
            Console.Read();
        }
    }

    class Product
    {
        public  int ProductID { get; set; }
        public  string ProductName { get; set; }
    }
}

记录而已

# P13491 【MX-X14-T1】拼凑基因 ## 题目描述 小 A 给了你两个长度为 $n$ 的字符串 $S,T$,他想问你是否可以将 $S$ 划分为若干子串\*后以任意顺序拼接在一起使其等于 $T$。 \*子串的定义为原字符串中**连续**的一段字符组成的字符串。 ## 输入格式 第一行,一个整数 $n$。 第二行,一个长度为 $n$ 的字符串 $S$。 第三行,一个长度为 $n$ 的字符串 $T$。 保证 $S,T$ 中只包含小写英文字母。 ## 输出格式 仅一行,一个字符串 `Yes` 或者 `No`,表示 $S$ 是否可以通过划分为若干子串然后以任意顺序拼接这些子串变成 $T$。 ## 输入输出样例 #1 ### 输入 #1 ``` 5 xyzab abxyz ``` ### 输出 #1 ``` Yes ``` ## 输入输出样例 #2 ### 输入 #2 ``` 6 aabbcc bccaab ``` ### 输出 #2 ``` Yes ``` ## 输入输出样例 #3 ### 输入 #3 ``` 3 abc bda ``` ### 输出 #3 ``` No ``` ## 说明/提示 **【样例解释 \#1】** 可以把 $S$ 划分为 $\texttt{xyz},\texttt{ab}$ 两个子串,交换这两个子串的顺序拼接成 $\texttt{abxyz}$。 **【样例解释 \#2】** 可以把 $S$ 划分为 $\texttt{aa},\texttt{b},\texttt{bcc}$,然后拼接成 $\texttt{bccaab}$。 **【样例解释 \#3】** 可以证明无论如何划分和拼接都不可能使 $S$ 变成 $T$。 **【数据范围】** 对于 $10\%$ 的数据,$n \le 10$。 对于 $30\%$ 的数据,$n \le 20$。 对于 $60\%$ 的数据,$n \le 10^3$。 对于 $100\%$ 的数据,$1 \le n \le 10^5$,保证 $S,T$ 中只包含小写英文字母。
07-27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值