|
第二题运行效率优化版
第二题还有优化的空间.因为双循环在实际工作中是要尽量避免的.试想如果输入的分割符号非常多,那么每个字符都要遍历一编代价可能比较高.实际工作中,应该优化.使用哈希表数据结构进行优化,把双循环变为单循环.代码如下(可直接编译运行)
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections; //hashtable需要使用到的空间
namespace ConsoleApplication2
{
class Program
{
static void sepstring(string input, string inputsig)
{
Hashtable symbol = new Hashtable();
for (int i = 0; i < inputsig.Length; i++)
symbol.Add(inputsig [ i ] , i);
for (int i = 0; i < input.Length; i++)
{
if(!symbol.ContainsKey(input [ i ] ))
Console.Write(input [ i ] );
else
Console.Write(" "); //偷懒直接打印,也可用上一个解法的arraylist
}
}
static void Main(string[] args)
{
string inputline = Console.ReadLine();
string inputsig = Console.ReadLine();
sepstring(inputline, inputsig);
Console.ReadKey();
}
}
} |
|