Advertisement
Guest User

Untitled

a guest
Aug 30th, 2016
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. using System;
  2.  
  3. public class Spaces {
  4. public static void Main(string[] args) {
  5. var s = "12345678";
  6. var r = InjectSpaces(s); // r == "1 2 3 4"
  7. for (int i = 0; i < 200000000; ++i) {
  8. r = InjectSpaces(s);
  9. }
  10. Console.WriteLine("'{0}' -> '{1}'", s, r);
  11. }
  12.  
  13. static unsafe string InjectSpaces(string s) {
  14. fixed (char* pS = s) {
  15. var pLength = (int*)pS - 1;
  16. var length = *pLength & 0x3fffffff;
  17. var result = new string(' ', 2*length - 1);
  18. fixed (char* pResult = result) {
  19. for (int i = 0; i < length; ++i) {
  20. pResult[2*i] = pS[i];
  21. }
  22. }
  23. return result;
  24. }
  25. }
  26.  
  27. static string InjectSpaces2(string s) {
  28. var ra = new char[s.Length * 2 - 1];
  29. ra[0] = s[0];
  30. for (int i = 1; i < s.Length; ++i) {
  31. ra[2*i - 1] = ' ';
  32. ra[2*i] = s[i];
  33. }
  34.  
  35. return new string (ra);
  36. }
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement