Minimum moves to make String Palindrome incrementing all characters of Substrings
import
java.io.*;
import
java.util.*;
public
class
GFG {
public
static
void
minMoves(
int
a[],
int
n)
{
int
b[] =
new
int
[n];
for
(
int
i =
0
; i < n; i++) {
if
(a[i] > a[n - i -
1
]) {
b[i] = a[i] - a[n - i -
1
];
}
}
long
ans = b[
0
];
for
(
int
i =
1
; i < n; i++) {
ans += Math.max(
0
, b[i] - b[i -
1
]);
}
System.out.println(ans);
}
public
static
void
main(String[] args)
{
String S1 =
"2643"
;
int
N = S1.length();
int
[] A =
new
int
[N];
for
(
int
i =
0
; i < N; i++) {
A[i] = S1.charAt(i) -
'0'
;
}
minMoves(A, N);
String S2 =
"113678"
;
N = S2.length();
int
[] B =
new
int
[N];
for
(
int
i =
0
; i < N; i++) {
B[i] = S2.charAt(i) -
'0'
;
}
minMoves(B, N);
}
}
import
java.io.*;
import
java.util.*;
public
class
GFG {
public
static
void
minMoves(
int
a[],
int
n)
{
int
b[] =
new
int
[n];
for
(
int
i =
0
; i < n; i++) {
if
(a[i] > a[n - i -
1
]) {
b[i] = a[i] - a[n - i -
1
];
}
}
long
ans = b[
0
];
for
(
int
i =
1
; i < n; i++) {
ans += Math.max(
0
, b[i] - b[i -
1
]);
}
System.out.println(ans);
}
public
static
void
main(String[] args)
{
String S1 =
"2643"
;
int
N = S1.length();
int
[] A =
new
int
[N];
for
(
int
i =
0
; i < N; i++) {
A[i] = S1.charAt(i) -
'0'
;
}
minMoves(A, N);
String S2 =
"113678"
;
N = S2.length();
int
[] B =
new
int
[N];
for
(
int
i =
0
; i < N; i++) {
B[i] = S2.charAt(i) -
'0'
;
}
minMoves(B, N);
}
}