• 寻找失落的SubString


    【回目录】

    面试或者笔试的时候常常会遇到这样的问题,写一个函数,判断一个字符串里是否包含有给定的子字符串。当然,人家并不是想看看你是否知道System.String实例对象中包含有Contains这个函数,而是想通过观察面试者书写代码来看看他的技术水平。

    昨天我在某国内外知名的软件公司二面时就遇到了这样的问题,这是我第二次遇到这个问题,上一次大概是一年多以前了。昨天一边写代码一边就在想,这个问题比较典型,有必要专门放到我的这个《.NET程序员技术面试迷你手册》里,今天专门把代码又在Visual Studio里重新写了一遍,发现了几处昨天的疏漏。即兴发挥在纸上写代码,最大的困难就是找不到感觉,不过现在不是抱怨的时候,过去的就过去了吧,一切向前看。

       1: using System;
       2:  
       3: namespace Autumoon.PrepareForInterview.CSharpProgramming
       4: {
       5:     public static class ContainsDemo
       6:     {
       7:         public static bool ContainsSubString(string original, string subString)
       8:         {
       9:             if (String.IsNullOrEmpty(original) || String.IsNullOrEmpty(subString) || original.Length < subString.Length)
      10:             {
      11:                 return false;
      12:             }
      13:  
      14:             int length = original.Length;
      15:             int subLength = subString.Length;
      16:  
      17:             for (int index = 0; index < length; index++)
      18:             {
      19:                 if (original[index] == subString[0])
      20:                 {
      21:                     // Goal: If the subString is longer than the rest original string, should return False directly.
      22:                     if (subLength > length - index)
      23:                     {
      24:                         return false;
      25:                     }
      26:  
      27:                     // Goal: Start to compare the reset of original string and sub string.
      28:                     for (int subIndex = 0; (subIndex < subLength && index < length); subIndex++)
      29:                     {
      30:                         if (original[index + subIndex] != subString[subIndex])
      31:                         {
      32:                             break;
      33:                         }
      34:  
      35:                         // The only exit to return True.
      36:                         if (subIndex == subLength - 1)
      37:                         {
      38:                             return true;
      39:                         }
      40:                     }
      41:                 }
      42:             }
      43:  
      44:             return false;
      45:         }
      46:     }
      47: }

    Finding Sub String

    转载请注明出处。版权所有©1983-2021 麦机长,保留所有权利。
  • 相关阅读:
    linux每日命令(31):tar命令
    Django——model基础
    Django——模板层(template)(模板语法、自定义模板过滤器及标签、模板继承)
    Django
    linux每日命令(30):Linux 用户及用户组相关文件、命令详解
    linux每日命令(29):chown命令
    20170430深圳Meetup
    静态库嵌套引用问题
    JD-Store购物网站复盘——20170312
    20170305Meetup Git、heroku drop db
  • 原文地址:https://www.cnblogs.com/Autumoon/p/1276746.html
Copyright © 2020-2023  润新知