aabb가 있다고 하자
맨앞을 제외한 substring은 abb다.
그 다음은 bb이다.
bb는 펠린드롬이 맞다.
추가적으로 삭제된 aa만 붙이면 된다.
이는 즉, 삭제했던 횟수만큼 길이에 더하면 정답이다.
import Foundation
extension String {
func substring(from: Int, to: Int) -> String {
guard from < count, to >= 0, to - from >= 0 else {
return ""
}
// Index 값 획득
let startIndex = index(self.startIndex, offsetBy: from)
let endIndex = index(self.startIndex, offsetBy: to + 1) // '+1'이 있는 이유: endIndex는 문자열의 마지막 그 다음을 가리키기 때문
// 파싱
return String(self[startIndex ..< endIndex])
}
}
func isPalindrome(_ line : String)->Bool{
return line == String(line.reversed())
}
let input = readLine()!
var ans = input.count
for i in 0..<input.count{
if(isPalindrome(input.substring(from:i, to:input.count - 1))){
break
}
ans += 1
}
print(ans)
substring 출처
다음에는 swift만의 기능으로 substring과 같은 결과를 낼 수 있도록 해봐야겠다 ㅡ,.ㅡ