אַראָפּנעמען פּאַלינדראָמיק סאַבסאַקוואַנסיז לעעטקאָדע סאַלושאַן


שוועריקייט לעוועל גרינג
אָפט געבעטן אין אַמאַזאָן
שטריקל

די פּראָבלעם נעם פּאַלינדראָמיק סאַבסאַקוואַנסיז לעעטקאָדע סאַלושאַן שטאַטן אַז איר האָט אַ שטריקל. די שטריקל באשטייט פון בלויז צוויי אותיות 'אַ' אָדער 'ב'. איר דאַרפֿן צו מעקן די גאנצע שטריקל. עס איז אַ ריסטריקשאַן אַז איר קענען ויסמעקן בלויז אַ פּאַלינדראָמיק סאַבסטאַנסאַז אין איין מאַך. געפֿינען די מינימום נומער פון סטעפּס פארלאנגט צו מעקן די גאנצע שטריקל. לאָמיר נעמען אַ ביסל ביישפילן איידער מיר שפּרינגען אין די לייזונג.

אַראָפּנעמען פּאַלינדראָמיק סאַבסאַקוואַנסיז לעעטקאָדע סאַלושאַן

s = "ababa"
1

דערקלערונג: זינט די שטריקל איז אַ פּאַלינדראָום. מיר קענען אַראָפּנעמען די גאנצע שטריקל אין אַ איין מאַך. דער ענטפער איז אויך 1.

s = "abb"
2

דערקלערונג: אין דער ערשטער מאַך, מיר באַזייַטיקן "bb". אין די רגע מאַך, מיר באַזייַטיקן "אַ". אַזוי מיר דאַרפן לפּחות 2 באוועגט צו ויסמעקן די גאנצע שטריקל.

צוגאַנג צו באַזייַטיקן פּאַלינדראָמיק סאַבסאַקוואַנסיז לעעטקאָדע סאַלושאַן

די פּראָבלעם נעם פּאַלינדראָמיק סאַבסאַקוואַנסיז לעעטקאָדע סאַלושאַן איז אַן אָבסערוואַציע. מיר דאַרפֿן צו אָבסערווירן אַז די שטריקל באשטייט פון בלויז צוויי אותיות 'a' און 'b'. אויב מיר קומען אַריבער אַ פּאַלינדראָמע, מיר פשוט צוריקקומען 1. ווייַל עס ריקווייערז אַ איין מאַך צו מעקן אַ גאַנץ פּאַלינדראָום. אויב מיר באַקומען אַ ליידיק שטריקל, מיר זאָל צוריקקומען 0. אָבער חוץ די, עס איז בלויז איין פאַל ווען מיר האָבן אַ שטריקל וואָס איז נישט פּאַלינדראָום ווי אַ גאַנץ.

אָבער זינט די שטריקל האט בלויז 'אַ' און 'ב'. מיר מאַקסימום נעמען 2 מאָוועס צו באַזייַטיקן אַלע די אותיות. אין דער ערשטער מאַך, מיר זאָל אַראָפּנעמען אַלע 'אַ' ס. אין די רגע מאַך, מיר באַזייַטיקן אַלע 'ב' ס. דער ענטפער צו דעם פּ [פּראָבלעם קען זיין בלויז 0, 1 אָדער 2, דיפּענדינג אויף די אַרייַנשרייַב.

קאָד צו באַזייַטיקן פּאַלינדראָמיק סאַבסאַקוואַנסיז לעעטקאָדע סאַלושאַן

C ++ קאָד

#include <bits/stdc++.h>
using namespace std;

int removePalindromeSub(string s) {
    if(s.size() == 0)
        return 0;

    // check if palindrome
    bool isPalin = true;
    for(int i=0;i<s.length()/2;i++)
        if(s[i] != s[s.length()-1-i])
            isPalin = false;

    if(isPalin == true)
        return 1;
    else
        return 2;
}

int main(){
    cout<<removePalindromeSub("abb");
}
2

Java קאָד

import java.util.*;
import java.lang.*;
import java.io.*;

class Main
{
  public static int removePalindromeSub(String s) {
        if(s.isEmpty())
            return 0;
        
        // check if palindrome
        boolean isPalin = true;
        for(int i=0;i<s.length()/2;i++)
            if(s.charAt(i) != s.charAt(s.length()-1-i))
                isPalin = false;
        
        if(isPalin == true)
            return 1;
        else
            return 2;
    }
    
  public static void main (String[] args) throws java.lang.Exception
  {
    System.out.print(removePalindromeSub("abb"));
  }
}
2

קאַמפּלעקסיטי אַנאַליסיס

צייט קאַמפּלעקסיטי

אָ (N), ווייַל מיר דאַרפֿן צו דורכקוקן די גאנצע שטריקל צו קאָנטראָלירן צי עס איז פּאַלינדראָמע אָדער נישט.

ספעיס קאַמפּלעקסיטי

אָ (1), ווייַל מיר נוצן אַ קעסיידערדיק נומער פון וועריאַבאַלז.