addedInput schema / properties
Added value: +{
+ "analyzeWords": {
+ "default": true,
+ "description": "When true (default) each whitespace-separated word is also tested individually and reported under wordAnalysis; when false only the whole-string verdict is computed.",
+ "type": "boolean"
+ },
+ "caseSensitive": {
+ "default": false,
+ "description": "When true, uppercase and lowercase letters are treated as distinct; when false (default) the comparison is case-insensitive.",
+ "type": "boolean"
+ },
+ "ignorePunctuation": {
+ "default": true,
+ "description": "When true (default) punctuation and symbols (anything that is not a letter, digit, or space) are stripped before comparison; when false they must mirror.",
+ "type": "boolean"
+ },
+ "ignoreSpaces": {
+ "default": true,
+ "description": "When true (default) all whitespace is stripped before comparison, so spaced phrases can still qualify; when false spaces must mirror.",
+ "type": "boolean"
+ },
+ "text": {
+ "description": "Text to test for palindrome (must not be blank). Whitespace, case, and punctuation are handled per the options below.",
+ "type": "string"
+ }
+}
changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "properties": {
+ "nonPalindromicWords": {
+ "description": "Subset of wordAnalysis whose entries are not palindromes.",
+ "items": {
+ "description": "A word-analysis entry (same shape as wordAnalysis items).",
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "options": {
+ "description": "The effective options after defaults were applied.",
+ "properties": {
+ "analyzeWords": {
+ "description": "Effective analyze-words setting.",
+ "type": "boolean"
+ },
+ "caseSensitive": {
+ "description": "Effective case-sensitivity setting.",
+ "type": "boolean"
+ },
+ "ignorePunctuation": {
+ "description": "Effective ignore-punctuation setting.",
+ "type": "boolean"
+ },
+ "ignoreSpaces": {
+ "description": "Effective ignore-spaces setting.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "palindromicWords": {
+ "description": "Subset of wordAnalysis whose entries are palindromes.",
+ "items": {
+ "description": "A word-analysis entry (same shape as wordAnalysis items).",
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "result": {
+ "description": "Whole-string palindrome verdict and the strings it was derived from.",
+ "properties": {
+ "centerInfo": {
+ "description": "Center of the palindrome when isPalindrome is true, otherwise null.",
+ "properties": {
+ "character": {
+ "description": "The center character for a single center.",
+ "type": "string"
+ },
+ "characters": {
+ "description": "The two center characters for a double center.",
+ "type": "string"
+ },
+ "position": {
+ "description": "Zero-based index of the center character for a single center.",
+ "type": "integer"
+ },
+ "positions": {
+ "description": "The two zero-based center indices for a double center.",
+ "items": {
+ "type": "integer"
+ },
+ "type": "array"
+ },
+ "type": {
+ "description": "Either single (odd length, one center char) or double (even length, two center chars).",
+ "type": "string"
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "isPalindrome": {
+ "description": "True when the processed text equals its reverse.",
+ "type": "boolean"
+ },
+ "originalText": {
+ "description": "The submitted text, echoed back unmodified.",
+ "type": "string"
+ },
+ "processedText": {
+ "description": "The text after applying the case/space/punctuation options.",
+ "type": "string"
+ },
+ "reversedText": {
+ "description": "The processed text reversed character by character.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "statistics": {
+ "description": "Aggregate counts over the input and the per-word analysis.",
+ "properties": {
+ "charactersIgnored": {
+ "description": "Characters removed by the options (originalLength minus processedLength).",
+ "type": "integer"
+ },
+ "longestPalindromicWord": {
+ "description": "Length of the longest palindromic word, or 0 if none.",
+ "type": "integer"
+ },
+ "nonPalindromicWords": {
+ "description": "Count of words that are not palindromes.",
+ "type": "integer"
+ },
+ "originalLength": {
+ "description": "Character length of the original text.",
+ "type": "integer"
+ },
+ "palindromicWords": {
+ "description": "Count of words that are palindromes.",
+ "type": "integer"
+ },
+ "processedLength": {
+ "description": "Character length of the processed text.",
+ "type": "integer"
+ },
+ "shortestPalindromicWord": {
+ "description": "Length of the shortest palindromic word, or 0 if none.",
+ "type": "integer"
+ },
+ "totalWords": {
+ "description": "Number of words analyzed.",
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "success": {
+ "description": "Whether the check succeeded.",
+ "type": "boolean"
+ },
+ "wordAnalysis": {
+ "description": "Per-word results, present only when analyzeWords is true.",
+ "items": {
+ "properties": {
+ "isPalindrome": {
+ "description": "Whether this single word is a palindrome.",
+ "type": "boolean"
+ },
+ "length": {
+ "description": "Character length of the processed word.",
+ "type": "integer"
+ },
+ "original": {
+ "description": "The word as it appeared in the input.",
+ "type": "string"
+ },
+ "processed": {
+ "description": "The word after applying case/punctuation options.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+}