Advertisement
Guest User

Untitled

a guest
Mar 20th, 2019
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. use std::char;
  2.  
  3. struct State {
  4. chars: Vec<char>,
  5. res: String,
  6. }
  7.  
  8. fn main() {
  9. let input = "CCGTATAAAGTAAGAAATAAAGTAAGAACTGTAGAGCGATCGTTCGTACCTTCGGCCGCAAGAGATGGAGAAATAAAGTAAGAAAGAGCTAACTAGCGCCCGCAATACAGAGATGGAGAAATAAAGTAAGAAAGAGCTAACTAGCGCCCGCAATAGAGAGATGGAGAAATAAAGTAAGAAAGAGCGCGCTCCCGTGCGATAGAGATGGAGAAATAACTTCAGTAAGAAATAAAGTAAGAAATACCCTC";
  10. let res: String = input.chars().fold(State {
  11. chars: vec![],
  12. res: String::new(),
  13. }, |state, c| {
  14. let mut chars = state.chars.clone();
  15. let mut result = state.res.clone();
  16. if chars.len() >= 7 {
  17. let mut res = 0u32;
  18. for (i, c) in chars.iter().enumerate() {
  19. let n = match c {
  20. 'A' => 0,
  21. 'C' => 1,
  22. 'G' => 2,
  23. _ => 3
  24. };
  25. res += n * 4_u32.pow(i as u32);
  26. }
  27. println!("{}", res);
  28. result = format!("{}{}", result, char::from_u32(res).unwrap());
  29. chars = vec![];
  30. } else {
  31. chars.push(c);
  32. }
  33. State {
  34. chars,
  35. res: result
  36. }
  37. }).res;
  38. println!("{}", res);
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement