יונ.20

למצוא מחיצות בתוך מחרוזת של אותיות

למצוא מחיצות בתוך מחרוזת של אותיות

נותנים מחרוזת של אותיות קטנות באנגלית. יש לחלק אותה למחיצות. כל מחיצה מכילה אותיות חוזרות או לא חוזרות מאותה קבוצה. נותנים מחרוזת: "ababcbacadefegdehijhklij", התשובה תהיה [9,7,8]

  1. public IList<int> PartitionLabels(string S) {
  2. List<int> segments = new List<int>();
  3. if (S == null || S.Length == 0)
  4. return segments;
  5. int[] last = new int[26];
  6. for (int i = 0; i < S.Length; i++)
  7. last[S[i] - 'a'] = i;
  8.  
  9. int end = 0, start = 0;
  10. for (int i = 0; i < S.Length; i++) {
  11. end = Math.Max(end, last[S[i] - 'a']);
  12. if(i == end) {
  13. segments.Add(end - start + 1);
  14. start = end+ 1;
  15. }
  16. }
  17. return segments;
  18. }


תגיות:
שתף את הסיפור הזה:

תגובות(0)

השאירו תגובה

קפטצ'ה לא מתאימה

תגובה