{"id":15772,"date":"2022-10-12T23:34:02","date_gmt":"2022-10-12T18:04:02","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-vigenere-cipher-c-with-n\/"},"modified":"2022-10-12T23:34:02","modified_gmt":"2022-10-12T18:04:02","slug":"solved-vigenere-cipher-c-with-n","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-vigenere-cipher-c-with-n\/","title":{"rendered":"[Solved] Vigenere Cipher c# with &#8220;\u00f1&#8221;"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-26519114\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"26519114\" data-parentid=\"26517799\" data-score=\"7\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>Your code:<\/p>\n<pre><code>if (Char.IsLetter(s[i]))\n{\n        s[i] = (char)(s[i] + key[j] - 'A');\n        if (s[i] &gt; 'Z') s[i] = (char)(s[i] - 'Z' + 'A' - 1);\n}\n<\/code><\/pre>\n<p>Depends on the fact that the letters from U+0041 to U+005A just happen to match a the letters of the alphabets of some languages, such as English*. (If the test had depended on this instead of just checking it was a letter then you would have been leaving <code>\u00d1<\/code> unchanged rather than get an error). There are some other languages whose alphabet&#8217;s are contiguous and in order in the UCS, but most languages are not.<\/p>\n<p>For this reason you&#8217;ll need to define your own alphabet. A string is a simple enough way to do this for most uses.<\/p>\n<pre><code>string spanishAlphabet = \"ABCDEFGHIJKLMN\u00d1OPQRSTUVWXYZ\";\nstring englishAlphabet = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\nstring irishAlphabet = \"ABCDEFGHILMNOPRSTU\";\nstring danishAlphabet = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\u00c6\u00d8\u00c5\";\nstring norwegianAlphabet = danishAlphabet;\n<\/code><\/pre>\n<p>Then instead of depending on coincidences between an alphabet and the UCS, you can use the alphabet you care about:<\/p>\n<pre><code>static void VigenereEncrypt(StringBuilder s, string key, string alphabet)\n{\n  for (int i = 0; i &lt; s.Length; i++) s[i] = Char.ToUpper(s[i]);\n  key = key.ToUpper();\n  int j = 0;\n  for (int i = 0; i &lt; s.Length; i++)\n  {\n    if(alphabet.Contains(s[i]))\n      s[i] = alphabet[(alphabet.IndexOf(s[i]) + alphabet.IndexOf(key[j])) % alphabet.Length];\n    j = (j + 1) % key.Length;\n  }\n}\n\nstatic void VigenereDecrypt(StringBuilder s, string key, string alphabet)\n{\n  for (int i = 0; i &lt; s.Length; i++) s[i] = Char.ToUpper(s[i]);\n  key = key.ToUpper();\n  int j = 0;\n  for (int i = 0; i &lt; s.Length; i++)\n  {\n    if(alphabet.Contains(s[i]))\n    {\n      s[i] = alphabet[(alphabet.IndexOf(s[i]) - alphabet.IndexOf(key[j]) + alphabet.Length) % alphabet.Length];\n      j = (j + 1) % key.Length;\n    }\n  }\n}\n<\/code><\/pre>\n<p>(I&#8217;m assuming that the key is always composed solely from the alphabet in question, a more robust solution wouldn&#8217;t make that assumption, but there are a few different approaches as to just what one should do in such a case, so there isn&#8217;t a single correct way to deal with that and I ignored the issue).<\/p>\n<p>I also took out the <code>ref<\/code> keyword, since the <code>StringBuilder<\/code> isn&#8217;t changed for another reference as that signature suggests, but mutated in-place. A more idiomatic approach though would be to receive a string and return another:<\/p>\n<pre><code>static string VigenereEncrypt(string s, string key, string alphabet)\n{\n  s = s.ToUpper();\n  key = key.ToUpper();\n  int j = 0;\n  StringBuilder ret = new StringBuilder(s.Length);\n  for (int i = 0; i &lt; s.Length; i++)\n  {\n    if(alphabet.Contains(s[i]))\n      ret.Append(alphabet[(alphabet.IndexOf(s[i]) + alphabet.IndexOf(key[j])) % alphabet.Length]);\n    else\n      ret.Append(s[i]);\n    j = (j + 1) % key.Length;\n  }\n  return ret.ToString();\n}\n\nstatic string VigenereDecrypt(string s, string key, string alphabet)\n{\n  s = s.ToUpper();\n  key = key.ToUpper();\n  int j = 0;\n  StringBuilder ret = new StringBuilder(s.Length);\n  for (int i = 0; i &lt; s.Length; i++)\n  {\n    if(alphabet.Contains(s[i]))\n      ret.Append(alphabet[(alphabet.IndexOf(s[i]) - alphabet.IndexOf(key[j]) + alphabet.Length) % alphabet.Length]);\n    else\n      ret.Append(s[i]);\n    j = (j + 1) % key.Length;\n  }\n  return ret.ToString();\n}\n<\/code><\/pre>\n<p>If you want to treat strings that Unicode does not consider a single character as a letter, e.g. <code>IJ<\/code> in Dutch\u2020 this gets more complicated. One possibility is to use a marker character for such a sequence and then first replace each case of the sequence with it before encrypting\u2021, and then replace back again should the marker appear in the output. One would have to be sure that the marker character didn&#8217;t appear in the input, which would make non-characters like U+FFFE useful here.<\/p>\n<p>Diacritics that are not considered separate parts of the alphabet (like <code>\u00d1<\/code> is in Spanish), are another complication. In the days when cyphers like the Vigen\u00e8re were actually used it was common to just strip diacritics and deal with the fact that the output would not have diacritics it should have. An easy way to do that is to use a method like:<\/p>\n<pre><code>public static IEnumerable&lt;char&gt; RemoveDiacriticsEnum(string src, string alphabet)\n{\n  foreach(char c in src.Normalize(NormalizationForm.FormD))\n    if(alphabet.Contains(c))  \/\/ Catch e.g. \u00d1 in Spanish, considered letter in own right\n      yield return c;\n    else\n      switch(CharUnicodeInfo.GetUnicodeCategory(c))\n      {\n        case UnicodeCategory.NonSpacingMark:\n        case UnicodeCategory.SpacingCombiningMark:\n        case UnicodeCategory.EnclosingMark:\n          \/\/do nothing\n          break;\n        default:\n          yield return customFolding(c);\n          break;\n      }\n}\n<\/code><\/pre>\n<p>And then use a loop that does <code>foreach(char c in RemoveDiacriticsEnum(s, alphabet))<\/code> and uses <code>c<\/code> where the code above uses <code>s[i]<\/code>. This won&#8217;t cover all cases, see https:\/\/stackoverflow.com\/a\/3769995\/400547 for some of the possible complications.<\/p>\n<p>Alternatively, one could include the common accent combinations in the alphabet:<\/p>\n<pre><code>string spanishAlphabet = \"A\u00c1BCDE\u00c9FGHI\u00cdJKLMN\u00d1O\u00d3PQRSTU\u00da\u00dcVWXYZ\";\n<\/code><\/pre>\n<p>*Strictly speaking there are a variety of conventions about where some other characters, particularly \u00d0, \u021c and \u00de should be positioned if used, so one version of the modern English alphabet is <code>A,B,C,D,[\u00d0],E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,[\u021c],Z,[\u00de]<\/code>, that is one would generally not list <code>\u00d0<\/code>, but if there was a word in your data that started with it, you&#8217;d position it between <code>D<\/code> and <code>E<\/code>, and so on. This is an obscure case in Modern English (we don&#8217;t really use those letters any more), but can be more significant in some other languages; e.g. the Irish alphabet is <code>A,B,C,D,E,F,G,H,I,L,M,N,O,P,R,S,T,U<\/code> but <code>V<\/code> is used in a few onomatop\u0153ic words, and <code>J,K,Q,V,W,X,Y,Z<\/code> are each found in some loan words, so we could list the Irish alphabet as <code>A,B,C,D,E,F,G,H,I,[J],[K],L,M,N,O,P,[Q],R,S,T,U,[V],[W],[X],[Y],[Z]<\/code>, not generally listing the letters in brackets, but positioning e.g. <code>J<\/code> between <code>I<\/code> and <code>L<\/code> if a word beginning with <code>J<\/code> is in a set of data. This complicates the question of cyphers like Vigen\u00e8re because we have to either use letters not strictly part of the alphabet in the calculation, or else not encrypt the <code>V<\/code> of a word like <em>v\u00f3ta\u00ed<\/em>.<\/p>\n<p>\u2020While there is a <code>\u0132<\/code> character in the UCS at U+0132, this is for compatibility with legacy encodings. Still using <code>\u0132<\/code> as the marker-character for <code>IJ<\/code> would neatly handle both <code>IJ<\/code> and data that had used <code>\u0132<\/code>.<\/p>\n<p>\u2021<em>Encrypting<\/em> in a rather loose sense, since this encryption scheme was broken by the middle of the 19th Century.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">0<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved Vigenere Cipher c# with &#8220;\u00f1&#8221; <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] Your code: if (Char.IsLetter(s[i])) { s[i] = (char)(s[i] + key[j] &#8211; &#8216;A&#8217;); if (s[i] &gt; &#8216;Z&#8217;) s[i] = (char)(s[i] &#8211; &#8216;Z&#8217; + &#8216;A&#8217; &#8211; 1); } Depends on the fact that the letters from U+0041 to U+005A just happen to match a the letters of the alphabets of some languages, such as English*. (If &#8230; <a title=\"[Solved] Vigenere Cipher c# with &#8220;\u00f1&#8221;\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-vigenere-cipher-c-with-n\/\" aria-label=\"More on [Solved] Vigenere Cipher c# with &#8220;\u00f1&#8221;\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[324,2899],"class_list":["post-15772","post","type-post","status-publish","format-standard","hentry","category-solved","tag-c","tag-vigenere"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>[Solved] Vigenere Cipher c# with &quot;\u00f1&quot; - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-vigenere-cipher-c-with-n\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Vigenere Cipher c# with &quot;\u00f1&quot; - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] Your code: if (Char.IsLetter(s[i])) { s[i] = (char)(s[i] + key[j] - &#039;A&#039;); if (s[i] &gt; &#039;Z&#039;) s[i] = (char)(s[i] - &#039;Z&#039; + &#039;A&#039; - 1); } Depends on the fact that the letters from U+0041 to U+005A just happen to match a the letters of the alphabets of some languages, such as English*. (If ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-vigenere-cipher-c-with-n\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-12T18:04:02+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-vigenere-cipher-c-with-n\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-vigenere-cipher-c-with-n\\\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/person\\\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Vigenere Cipher c# with &#8220;\u00f1&#8221;\",\"datePublished\":\"2022-10-12T18:04:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-vigenere-cipher-c-with-n\\\/\"},\"wordCount\":646,\"publisher\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#organization\"},\"keywords\":[\"c++\",\"vigenere\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-vigenere-cipher-c-with-n\\\/\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-vigenere-cipher-c-with-n\\\/\",\"name\":\"[Solved] Vigenere Cipher c# with \\\"\u00f1\\\" - JassWeb\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#website\"},\"datePublished\":\"2022-10-12T18:04:02+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-vigenere-cipher-c-with-n\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-vigenere-cipher-c-with-n\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-vigenere-cipher-c-with-n\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Vigenere Cipher c# with &#8220;\u00f1&#8221;\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#website\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/jassweb.com\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/jass-website-logo-1.png\",\"contentUrl\":\"https:\\\/\\\/jassweb.com\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/person\\\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400\",\"contentUrl\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\\\/\\\/jassweb.com\"],\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/author\\\/jaspritsinghghumangmail-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] Vigenere Cipher c# with \"\u00f1\" - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-vigenere-cipher-c-with-n\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Vigenere Cipher c# with \"\u00f1\" - JassWeb","og_description":"[ad_1] Your code: if (Char.IsLetter(s[i])) { s[i] = (char)(s[i] + key[j] - 'A'); if (s[i] &gt; 'Z') s[i] = (char)(s[i] - 'Z' + 'A' - 1); } Depends on the fact that the letters from U+0041 to U+005A just happen to match a the letters of the alphabets of some languages, such as English*. (If ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-vigenere-cipher-c-with-n\/","og_site_name":"JassWeb","article_published_time":"2022-10-12T18:04:02+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-vigenere-cipher-c-with-n\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-vigenere-cipher-c-with-n\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Vigenere Cipher c# with &#8220;\u00f1&#8221;","datePublished":"2022-10-12T18:04:02+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-vigenere-cipher-c-with-n\/"},"wordCount":646,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["c++","vigenere"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-vigenere-cipher-c-with-n\/","url":"https:\/\/jassweb.com\/solved\/solved-vigenere-cipher-c-with-n\/","name":"[Solved] Vigenere Cipher c# with \"\u00f1\" - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-10-12T18:04:02+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-vigenere-cipher-c-with-n\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-vigenere-cipher-c-with-n\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-vigenere-cipher-c-with-n\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Vigenere Cipher c# with &#8220;\u00f1&#8221;"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/15772","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=15772"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/15772\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=15772"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=15772"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=15772"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}