code: static boolean normaliseCycle(int[] cycle, int[] contribution) {
          int offset = indexOfHetro(cycle, contribution);
          if (offset < 0) return false;
          if (offset == 0) return true;
          int[] cpy = Arrays.copyOf(cycle, cycle.length);
          int len = cycle.length - 1;
          for (int j = 0; j < len; j++) {
              cycle[j] = cpy[(offset + j) % len];
          }
          cycle[len] = cycle[0]; // make closed walk
          return true;
      }
docs: Normalises a 5-member 'cycle' such that the hetroatom contributing the lone-pair is in
  position 1 (index 0). The alpha atoms are then in index 1 and 4 whilst the beta atoms are in
  index 2 and 3. If the ring contains more than one hetroatom the cycle is not normalised
  (return=false).
  
  @param cycle        aromatic cycle to normalise, |C| = 5
  @param contribution vector of p electron contributions from each vertex (size |V|)
  @return whether the cycle was normalised