摘要: 翻转句子中单词的顺序。题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student. a am I”。思路:把字符串按空格分割成数组,然后倒序拼接输出但是:出题人的意图是不让你用string里的方法分割拼接。最后我只能自己想办法反转了,如果不用string里的方法有点小复杂!方法一: string str = "I am a student."; string[] oldStr = str.Split(' '); Arr 阅读全文
posted @ 2011-07-24 18:11 meifage2 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 3.求子数组的最大和题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。如果不考虑时间复杂度,我们可以枚举出所有子数组并求出他们的和。不过非常遗憾的是,由于长度为n的数组有O(n2)个子数组;而且求一个长度为n的数组的和的时间复杂度为O(n)。因此这种思路的时间是O(n3)。很容易理解,当我们加上一个正数时,和会增加;当我们加上一个负数时,和 阅读全文
posted @ 2011-07-24 14:39 meifage2 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 今天看算法分析是,看到一个这样的问题,就是在一堆数据中查找到第k个大的值。 名称是:设计一组N个数,确定其中第k个最大值,这是一个选择问题,当然,解决这个问题的方法很多,本人在网上搜索了一番,查找到以下的方式,决定很好,推荐给大家。 所谓“第(前)k大数问题”指的是在长度为n(n>=k)的乱序数组中S找出从大到小顺序的第(前)k个数的问题。 解法1: 我们可以对这个乱序数组按照从大到小先行排序,然后取出前k大,总的时间复杂度为O(n*logn + k)。 解法2: 利用选择排序或交互排序,K次选择后即可得到第k大的数。总的时间复杂度为O(n*k) 解法3: 利用快速排序的思想,从数组S中 阅读全文
posted @ 2011-07-23 16:46 meifage2 阅读(203) 评论(0) 推荐(0) 编辑
摘要: class Program { static void Main(string[] args) { int[] A = new int[] { 3, 4, 3, 4, 5, 6, 6 }; int strLen = FindS(A,A.Length); Console.WriteLine(strLen); Console.ReadKey(); } public static int FindS(int[] A, int n) { for (int i = 0; i < n - 1; i++) { for (int j = i + 1; j < n; j++) { if (A[i] 阅读全文
posted @ 2011-07-23 15:20 meifage2 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 题目:输入一个字符串,输出该字符串对称子字符串的最大长度,如输入google,则输出4.思路:思路很中规中矩,遍历这个字符串,若有发现相邻的两个字符相等,就循环判断与这两个字符相邻的两个字符是否相等, 直到不等,记下字符符合条件的字符个数。最大的个数即为所求。class Program { static void Main(string[] args) { string str = "google"; int strLen = counterplan1(str); Console.WriteLine(strLen); Console.ReadKey(); } public 阅读全文
posted @ 2011-07-23 15:07 meifage2 阅读(197) 评论(0) 推荐(0) 编辑
摘要: view plainenumMyEnum{A=1,B=1}好奇之下写了代码进行验证:view plainenumMyEnum{A,B=2,C,D=2,E,F=1,G}竟然发现:第一点:view plaininta=(int)MyEnum.A;//a=0intc=(int)MyEnum.C;//c=3inte=(int)MyEnum.E;//e=3intg=(int)MyEnum.G;//g=2 (1)、如果第一项没指定值,默认为0。 (2)、项的值在枚举中不一定唯一。 (2)、如果没指定项的值,后面项的值“总是”(不因任何原因,如已经存在值)等于前面项的值加1。 (3)、枚举的项不一定是从前到 阅读全文
posted @ 2011-07-22 23:18 meifage2 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 九、#region #region 使您可以在使用 Visual Studio 代码编辑器的大纲显示功能时指定可展开或折叠的代码块。例如:#region MyClass definitionpublic class MyClass { static void Main() { }}#endregion备注: #region 块必须以 #endregion 指令终止。#region 块不能与 #if 块重叠。但是,可以将 #region 块嵌套在 #if 块内,或将 #if 块嵌套在 #region 块内。 阅读全文
posted @ 2011-07-22 17:21 meifage2 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 在”传智播客DotNet面试宝典(改).pdf“有这样一道非常有意思,也比较有深度的题目。String s = new String("xyz");创建了多少个String实例?传智的老师告诉同学们:答案是两个,一个是"xyz",一个是指向"xyz"的引用对象。貌似很正确,很有道理。没错,"xyz"是一个字符串,而DotNet字符串(其实Java也是)有驻留intern这样一种机制。抱歉的是,传智的老师没有料到,问这个问题的同学或者是公司太坏了。这道题的题目是错的,答案也不对。大家手头有visualstudio的可 阅读全文
posted @ 2011-07-22 16:59 meifage2 阅读(309) 评论(0) 推荐(0) 编辑
摘要: /// <summary> /// 摘要 /// </summary> /// <param name="Name">姓名</param> /// <param name="Age">年龄</param> /// <returns></returns> private string Student(string Name,int Age) { //代码区 } 为了使用C#提供的XML注释功能,你的注释应该使用特殊的注释语法(///)开头。在///之后,你可以使 阅读全文
posted @ 2011-07-22 16:13 meifage2 阅读(413) 评论(0) 推荐(0) 编辑
摘要: http://kb.cnblogs.com/tag/%e5%bc%80%e5%8f%91%e6%8a%80%e5%b7%a7/ 阅读全文
posted @ 2011-07-22 10:47 meifage2 阅读(143) 评论(0) 推荐(0) 编辑