经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C# » 查看文章
C# 写 LeetCode easy #14 Longest Common Prefix
来源:cnblogs  作者:皮皮丶码  时间:2018/11/30 9:43:07  对本文有异议

14、Longest Common Prefix

Write a function to find the longest common prefix string amongst an array of strings.

If there is no common prefix, return an empty string "".

Example 1:

  1. Input: ["flower","flow","flight"]
  2. Output: "fl"

Example 2:

  1. Input: ["dog","racecar","car"]
  2. Output: ""
  3. Explanation: There is no common prefix among the input strings.

Note:

All given inputs are in lowercase letters a-z.

 

代码:

  1. static void Main(string[] args)
  2. {
  3. string[] str = new string[] { "my","myname","mys"};
  4. string res=GetLongestCommonPrefix(str);
  5. Console.WriteLine(res);
  6. Console.ReadKey();
  7. }
  8. private static string GetLongestCommonPrefix(string[] strs)
  9. {
  10. if (strs.Length == 0) return "";
  11. if (strs.Length == 1) return strs[0];
  12. var min = int.MaxValue;
  13. foreach (var item in strs)
  14. {
  15. if (item.Length < min)
  16. {
  17. min = item.Length;
  18. }
  19. }
  20. var index = -1;
  21. for (int i=0; i < min; i++)
  22. {
  23. for (int j = 1; j < strs.Length; j++)
  24. {
  25. if (strs[j][i] != strs[0][i])
  26. {
  27. return strs[0].Substring(0, i);
  28. }
  29. else
  30. {
  31. index = i;
  32. }
  33. }
  34. }
  35. return strs[0].Substring(0,index+1);
  36. }

 

  1. 解析:
    输入:字符串数组
    输出:字符串
    思想
      首先,分三部分,当数组为空时,返回空字符串;数组中只有一个元素,输出该元素;数组中有若干字符串,则进行以下操作。(注意:这里也可以判断数组中是否含有空字符串,有则返回空)
      其次,对于一般情况,先找出数组中最小长度的字符串,根据这个长度,从第一个字符开始遍历。
      最后,将数组中的每个字符串和第一个字符串的每个字符进行比较。相同则记录字符索引值,否则返回共同子串。
    时间复杂度O(m*n) 其中m是单词最大长度,n是数组长度。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号