ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

LeetCode //C - 1309. Decrypt String from Alphabet to Integer Mapping

LeetCode //C - 1309. Decrypt String from Alphabet to Integer Mapping

1309. Decrypt String from Alphabet to Integer Mapping

You are given a string s formed by digits and ‘#’. We want to map s to English lowercase characters as follows:

  • Characters (‘a’ to ‘i’) are represented by (‘1’ to ‘9’) respectively.
  • Characters (‘j’ to ‘z’) are represented by (‘10#’ to ‘26#’) respectively.

Returnthe string formed after mapping.

The test cases are generated so that a unique mapping will always exist.

Example 1:

Input:s = “10#11#12”
Output:“jkab”
Explanation:“j” -> “10#” , “k” -> “11#” , “a” -> “1” , “b” -> “2”.

Example 2:

Input:s = “1326#”
Output:“acz”

Constraints:
  • 1 <= s.length <= 1000
  • s consists of digits and the ‘#’ letter.
  • s will be a valid string such that mapping is always possible.

From: LeetCode
Link: 1309. Decrypt String from Alphabet to Integer Mapping


Solution:

Ideas:

Scan from left to right; when the character two positions ahead is ‘#’, decode two digits, otherwise decode one digit.

Code:
#include<stdlib.h>#include<string.h>char*freqAlphabets(char*s){intn=strlen(s);char*result=(char*)malloc((n+1)*sizeof(char));inti=0;intindex=0;while(i<n){intvalue;if(i+2<n&&s[i+2]=='#'){value=(s[i]-'0')*10+(s[i+1]-'0');i+=3;}else{value=s[i]-'0';i++;}result[index++]='a'+value-1;}result[index]='\0';returnresult;}
返回列表