Advertisement
Guest User

Benchmark for IsStringMadeOf

a guest
Oct 14th, 2014
295
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.78 KB | None | 0 0
  1.  
  2. [DllImport("utils.dll", BestFitMapping = true, CallingConvention = CallingConvention.Cdecl)]
  3. public static extern bool MadeOf(char[] str, char[] from);
  4.  
  5. // 49 seconds
  6. public static bool IsStringMadeOf(this string str, string from)
  7. {
  8.     if (str.Length > from.Length) return false;
  9.     return MadeOf((str + "\0").ToCharArray(), (from + "\0").ToCharArray());
  10. }
  11.  
  12.  
  13. C side;
  14.  
  15. #include <string.h>
  16.  
  17. extern "C"  __declspec(dllexport) bool MadeOf(char str[], char from[])
  18. {
  19.  
  20.     int len1 = strlen(str);
  21.     int len2 = strlen(from);
  22.  
  23.     for(int i= 0; i<len1; i++)
  24.     {
  25.         bool isExists = false;
  26.         for(int j= 0; j < len2; j++)
  27.         {
  28.             if(str[i] == from[j])
  29.             {
  30.             from[j] = '?';
  31.             isExists = true;
  32.             break;
  33.             }
  34.         }
  35.         if(!isExists)
  36.         {
  37.             return false;
  38.         }
  39.     }
  40.     return true;
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement