Cプログラムの画面に文字列を印刷するための最短パスを印刷します。
文字列を指定すると、プログラムはその最短経路を使用して画面上に文字列を印刷する最短経路を表示する必要があります。
Likescreenはアルファベットをフォーマットで保存します
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
例
Input: HUP Output : Move Down Move Down Move Down destination reached Move Left Move Left Move Down Move Down Move Down destination reached Move Up destination reached
ここで使用されるアプローチは、文字をn x n行列に格納し、次の操作を実行することです-
If row difference is negative then move up If row difference is positive then move down If column difference is negative then go left If column difference is positive then we go right
アルゴリズム
START Step 1 -> Declare Function void printpath(char str[]) Declare variable int i = 0 and cx=0 and cy=0 Loop While str[i] != '\0' Declare variable as int n1 = (str[i] - 'A') / 5 Declare variable as int n2 = (str[i] - 'B' + 1) % 5 Loop while cx > n1 Print move up cx— End Loop while cy > n2 Print Move Left Cy— End Loop while cx < n1 Print move down Cx++ End Loop while cy < n2 Print move down Cy++ End Print destination reached I++ Step 2 -> in main() Declare char str[] = {"HUP"} Call printpath(str) STOP
例
#include <stdio.h> void printpath(char str[]){ int i = 0; // start from character 'A' present at position (0, 0) int cx = 0, cy = 0; while (str[i] != '\0'){ // find cordinates of next character int n1 = (str[i] - 'A') / 5; int n2 = (str[i] - 'B' + 1) % 5; // Move Up if destination is above while (cx > n1){ printf("Move Up\n"); cx--; } // Move Left if destination is to the left while (cy > n2){ printf("Move Left\n"); cy--; } // Move down if destination is below while (cx < n1){ printf("Move Down\n"); cx++; } // Move Right if destination is to the right while (cy < n2){ printf("Move Down\n"); cy++; } // At this point, destination is reached printf("destination reached\n"); i++; } } int main(int argc, char const *argv[]){ char str[] = {"HUP"}; printpath(str); return 0; }
出力
上記のプログラムを実行すると、次の出力が生成されます-
Move Down Move Down Move Down destination reached Move Left Move Left Move Down Move Down Move Down destination reached Move Up destination reached
-
指定された文字列のすべての順列を出力するPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −文字列の可能なすべての順列を表示するために必要な文字列が与えられます。 次に、以下の実装のソリューションを見てみましょう- 例 # conversion def toString(List): return ''.join(List) # permutations def permute(a, l, r): if l == r: print (toString(a)) e
-
文字列に偶数の長さの単語を出力するPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 文字列を指定すると、文字列内のすべての単語を均等な長さで表示する必要があります。 アプローチ split()関数を使用して入力文字列を分割します。 forを使用して文字列の単語を繰り返し処理します ループ& len()を使用して単語の長さを計算します 機能。 長さが均等であると評価されると、単語が画面に表示されます。 それ以外の場合、画面に単語は表示されません。 次に、以下の実装を見てみましょう- 例 def printWords(s): # split