STRING PALINDROM
Terdapat suatu string dengan panjang N. Anda harus menentukan apakah string tersebut merupakan palindrom atau bukan. Palindrom adalah sebuah string yang jika dibaca dari kiri ke kanan akan sama dengan jika dibaca dari kanan ke kiri. Pada soal ini, String hanya berisi huruf alphabet kecil tanpa spasi. Jika string tersebut adalah sebuah palindrom, maka outputkan “PALINDROM” (tanpa tanda petik). Jika string tersebut bukan palindrom, maka outputkan “BUKAN PALINDROM” (tanpa tanda petik). Perhatikan contoh sebagai berikut:
| Input | Output |
| 4 abba |
PALINDROM |
| 4 abbb |
BUKAN PALINDROM |
| 1 a |
PALINDROM |
| 9 kasurrusak |
PALINDROM |
| 19 ospduaribuenambelas |
BUKAN PALINDROM |
Format Masukan :
Baris 1 : sebuah bilangan N
Baris 2 : sebuah string dengan panjang N. String dijamin memiliki panjang N.
Format Keluaran :
Output sesuai dengan program di atas.
Batasan:
1 N
100
Setiap karakter pada string merupakan huruf alphabet kecil.
#include <iostream>
#include <cstring>
using namespace std;
bool isPalindrom(string str){
for(int i = 0, j=str.length()-1 ; i<=j ; i++,j--){
if(str[i]!=str[j]) return false;
}
return true;
}
int main() {
string str;
int a;
cin >> a;
cin >> str;
cout << (isPalindrom(str)? "PALINDROM":"BUKAN PALINDROM") << endl;
}
Ide saya adalah:
for i:=1 to n
if (s[i] <> s[1+n-i] then
begin
cek:=false;
break;
end;
if cek then writeln('PALINDROM') else writeln('BUKAN PALINDROM'); end.
Masuk untuk menulis jawaban
var
n,i:integer;
s,k:string;
begin
k:='';
readln(s);
n:=length(s);
for i:=n downto 1 do
begin
k:=k+ s[i];
end;
if s=k then writeln('PALINDROM')
else writeln('BUKAN PALINDROM');
readln;
end.
Aku Kuchuz ????
var a,c:integer;b,d:string;
begin
readln(a);
readln(b);
for c:=a downto c+1 do d:=d+b[c];
if(b<>d) then write('BUKAN ');
writeln('PALINDROM');
end.
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int fake;
cin >> fake;
string s,cek;
cin >> s;
cek = s;
reverse(cek.begin(),cek.end());
if( s != cek) cout << "BUKAN PALINDROME";
else cout << "PALINDROME";
return 0;
}
Code c++.
pakai builtin function reverse juga bisa.
//dengan c++
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,count,i,j,m;
cin >> n;
string a;
cin >> a;
m = n;
count = 0;
for(int i=0;i<n;i++)
{
if(a[i] == a[m-1])
{
count += 1;
m--;
}
}
if(count == n)
{
cout << "PALINDROM" << "\n";
}
else
{
cout << "BUKAN PALINDROM" << "\n";
}
}
ini sih udah benar input outputnya, tapi panjang stringnya bisa ga sesuai sama angka yang di input kan.