Advertisement
Guest User

Untitled

a guest
Oct 21st, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. impl Solution {
  2. pub fn first(t : i32 , n: i32) -> i32 {
  3. 2*(n-t) - 1
  4. }
  5. pub fn second(t : i32) -> i32 {
  6. 2*t - 3
  7. }
  8. pub fn convert(s: String, num_rows: i32) -> String {
  9. let mut ans = String::new();
  10. let indexCounter = 0;
  11. let len = s.len();
  12. if num_rows==1 || len == 1 || len <= num_rows {
  13. s
  14. }
  15.  
  16. let mut i = 1;
  17. while i < num_rows {
  18. let mut index = i;
  19. let flag = false;
  20.  
  21. while index <= len {
  22. ans.push(s.chars().nth(index-1).unwrap());
  23. let gap1 = first (&i, &num_rows);
  24. let gap2 = second(i);
  25.  
  26. if i == num_rows {
  27. index = index + gap2 + 1;
  28. }
  29. else if i == 1 {
  30. index = index + gap1 + 1;
  31. }
  32. else {
  33. if flag == 0 {
  34. index = index + gap1 + 1;
  35. flag = true;
  36. }
  37. else {
  38. index = index + gap2 + 1;
  39. flag = false;
  40. }
  41. }
  42. }
  43. i = i + 1;
  44. }
  45. ans
  46. }
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement