日期:2014-05-18 浏览次数:21382 次
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。