日期:2014-05-18 浏览次数:21530 次
string temp = "http://www.qq.com";
int count = temp.ToCharArray().Distinct().Count();//11
------解决方案--------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string s = "http://www.qq.com";
foreach (var item in EnumSubStrings(s))
{
Console.WriteLine(item);
}
Console.WriteLine("全部个数:" + EnumSubStrings(s).Count());
Console.WriteLine("去掉重复:" + EnumSubStrings(s).Distinct().Count());
}
static IEnumerable<string> EnumSubStrings(string s)
{
yield return "";
for (int i = 0; i < s.Length; i++)
{
for (int j = i + 1; j <= s.Length; j++)
{
yield return s.Substring(i, j - i);
}
}
}
}
}
------解决方案--------------------
手算
http://www.qq.com,长度17
子串个数=17+16+15+14+...+1+1(空串)=(17+1)*17/2+1=154
重复
t 2
/ 2
w 3
ww 2
. 2
q 2
也就是1+1+2+1+1+1=7
所以是154-7=147。