国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

[LintCode] Twitch Words

zzbo / 1459人閱讀

Problem

Our normal words do not have more than two consecutive letters. If there are three or more consecutive letters, this is a tics. Now give a word, from left to right, to find out the starting point and ending point of all tics.

Example

Given str = "whaaaaatttsup", return [[2,6],[7,9]].

Explanation:
"aaaa" and "ttt" are twitching letters, and output their starting and ending points.
Given str = "whooooisssbesssst", return [[2,5],[7,9],[12,15]].

Explanation:
"ooo", "sss" and "ssss" are twitching letters, and output their starting and ending points.

Solution
public class Solution {
    /**
     * @param str: the origin string
     * @return: the start and end of every twitch words
     */
    public int[][] twitchWords(String str) {
        //set two boundaries, one pre value, only move the right boundary
        List> res = new ArrayList<>();
        int l = 0, r = 0;
        char[] strs = str.toCharArray();
        char pre = strs[0];
        for (int i = 0; i < strs.length; i++) {
            List cur = new ArrayList<>();
            if (i != 0 && strs[i] != pre) {
                if (r-l >= 2) {
                    cur.add(l);
                    cur.add(r);
                    res.add(cur);
                }
                l = i;
                r = i;
                pre = strs[i];
            } else if (strs[i] == pre) {
                r = i;
            }
        }
        //when the last three chars are twitch
        if (r-l >= 2) {
            List cur = new ArrayList<>();
            cur.add(l);
            cur.add(r);
            res.add(cur);
        }
        
        int[][] ans = new int[res.size()][2];
        for (int i = 0; i < res.size(); i++) {
            ans[i][0] = res.get(i).get(0);
            ans[i][1] = res.get(i).get(1);
        }
        return ans;
    }
}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71131.html

相關文章

  • [LeetCode/LintCode] Top K Frequent Words

    LeetCode version Problem Given a non-empty list of words, return the k most frequent elements. Your answer should be sorted by frequency from highest to lowest. If two words have the same frequency, t...

    0x584a 評論0 收藏0
  • [LeetCode/LintCode] Sentence Similarity

    Problem Given two sentences words1, words2 (each represented as an array of strings), and a list of similar word pairs pairs, determine if two sentences are similar. For example, great acting skills a...

    dreamtecher 評論0 收藏0
  • [LintCode] Longest Words

    Problem Given a dictionary, find all of the longest words in the dictionary. Example Given { dog, google, facebook, internationalization, blabla } the longest words are(is) [internationaliz...

    roadtogeek 評論0 收藏0
  • [LintCode] The Number In Words

    Problem Given a non-negative integer n, print the number in words. Example Given n = 125 Return one hundred twenty five Solution class Solution { private String[] belowTen = new String[] {, One, T...

    姘存按 評論0 收藏0
  • [LeetCode/LintCode] Word Ladder

    摘要:使用,利用其按層次操作的性質,可以得到最優解。這樣可以保證這一層被完全遍歷。每次循環取出的元素存為新的字符串。一旦找到和相同的字符串,就返回轉換序列長度操作層數,即。 Problem Given two words (start and end), and a dictionary, find the length of shortest transformation sequence...

    張金寶 評論0 收藏0

發表評論

0條評論

zzbo

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<