टीएल;डीआर

  • समस्या: सीटीसीआई समस्या १७.१३ का तकनीकी विवरण।
  • दृष्टिकोण: सीटीसीआई problem १७.१३: re-insert spaces into a text string to minimize unrecognized characters using डीपी and Trie.
  • जटिलता: इष्टतम समय और मेमोरी संतुलन।

यह लेख सीटीसीआई समस्या १७.१३ का एक स्पष्ट विवरण प्रदान करता है।

१. संदर्भ और समस्या कथन

सीटीसीआई problem १७.१३: re-insert spaces into a text string to minimize unrecognized characters using डीपी and Trie.

२. कोड और कार्यान्वयन

public class ReSpace {
    public int reSpace(Set<String> dictionary, String sentence) {
        int[] memo = new int[sentence.length() + 1];
        Arrays.fill(memo, -1);
        return BEST_SPLIT(dictionary, sentence, 0, memo);
    }
    private int BEST_SPLIT(Set<String> dict, String sentence, int start, int[] memo) {
        if (start >= sentence.length()) return 0;
        if (memo[start] != -1) return memo[start];
        int minUnmatched = Integer.MAX_VALUE;
        String str = "";
        for (int i = start; i < sentence.length(); i++) {
            str += sentence.charAt(i);
            int invalid = dict.contains(str) ? 0 : str.length();
            if (invalid < minUnmatched) {
                int result = BEST_SPLIT(dict, sentence, i + 1, memo);
                minUnmatched = Math.min(minUnmatched, invalid + result);
            }
        }
        memo[start] = minUnmatched;
        return minUnmatched;
    }
}

३. सारांश और एज केसेस

हमेशा सीमांत स्थितियों और इनपुट की जांच करें।