私はSQL Serverを使用しており、指定された文字列が回文かどうかをチェックしたいのですが、reverse
関数を使用しません。SQL:逆関数を使わずに文字列の回文をチェックする方法は?
-1
A
答えて
3
これを達成する方法は複数あります。そのうちの1つは、最初と最後の文字をチェックし、等しい場合はスライスし、ループで処理を続行することです。ループ
DECLARE @Test VARCHAR(100)
SELECT @Test = 'qwerewq'
SELECT CASE WHEN LEFT(@Test, LEN(@Test)/2) =
(
SELECT '' + SUBSTRING(RIGHT(@Test, LEN(@Test)/2), number, 1)
FROM master.dbo.spt_values
WHERE type='P' AND number BETWEEN 1 AND LEN(@Test)/2
ORDER BY number DESC
FOR XML PATH('')
)
THEN 1
ELSE 0
END
2
選択ここでLEFT
とRIGHT
を使用した例です。 @count変数を使って位置を変更し、一番左と右端の文字をつかみます:
DECLARE @mystring varchar(100) = 'redivider'
DECLARE @count int = 1
WHILE (@count < LEN(@mystring)/2) AND @count <> 0
BEGIN
IF (RIGHT(LEFT(@mystring, @count), 1) <> LEFT(RIGHT(@mystring, @count), 1))
SET @count = 0
ELSE SET @count += 1
END
SELECT CASE WHEN @count = 0
THEN 'Not a Palindrome'
ELSE 'Palindrome'
END [Result]
1
なし
DECLARE @string NVARCHAR(100)
DECLARE @counter INT
SET @string = 'Your string'
SET @counter = LEN(@string)/2
WHILE (@counter > 0)
BEGIN
IF LEFT(@string,1) = RIGHT(@string,1)
BEGIN
SET @string = SUBSTRING(@string,2,len(@string)-2)
SET @counter = @counter - 1
END
ELSE
BEGIN
PRINT ('Given string is not a Palindrome')
BREAK
END
END
IF(@counter = 0)
PRINT ('Given string is a Palindrome')
関連する問題
- 1. チェック文字列が回文
- 2. 文字列を逆にする方法
- 3. 逆のif文を文字列に連結する方法は?
- 4. 文字列の文字の出現をチェックする方法は?
- 5. string.charAt()を使わずに配列内の文字列の最初の文字を読み取る方法は?
- 6. SQL:関数を文字列に接続する方法
- 7. strcpy関数を使わずにstruct内の文字列を初期化する方法は?
- 8. 逆関数配列文字列
- 9. find関数を使わずに文字列を検索するpython 3
- 10. CGoを使わずに文字列をC文字列に変換する
- 11. C - scanf関数で文字列を使用する方法を複数回
- 12. SQL Select文でList内の特定の文字列をチェックする方法は?
- 13. 文字列を1文字ずつの文字列に変換する方法
- 14. evalまたはast.literal_evalを使わずに文字列を解析する方法
- 15. 文字列をファイナライズせずに文字列を渡す方法
- 16. LINQを使用して文字列配列内のすべての文字列を逆にする方法は?
- 17. クロスサイトスクリプティング:文字列をチェックする方法
- 18. sql関数で文字列パラメータを宣言する方法
- 19. 逆文字列と逆文字列
- 20. int(x)を使わずに文字列をintに変換する方法
- 21. Python - LISTの文字列を逆にする関数
- 22. eval()を使わずに文字列として格納された関数を実行する方法
- 23. メモリを割り当てずに文字列を逆にする方法
- 24. 不要な文字を使わずに1行のコードに複数の関数を表示する方法
- 25. 引用符を使わずに文字列を値と比較する方法
- 26. 関数を文字列として使用する方法は?
- 27. jsonの文字列をドメインオブジェクトに逆シリアル化する方法は?
- 28. forループを使わずに文字列内の文字を見つける
- 29. 文字列を逆にして文字を置き換える方法は?
- 30. 置換と分割の方法を使わずに特定の文字を含めずに文字列をリストに変換する方法は?
なぜ 'reverse()'を使いたくないのですか? –
@ GordonLinoff、私はちょうど逆の機能を使用せずにこれを達成しようとしています。 – lohith