计数第一个和最后一个数字相同的非回文数组元素
原文:https://www . geesforgeks . org/count-非回文-数组-元素-具有相同的第一个和最后一个数字/
给定一个大小为 N 的数组 arr[] ,任务是打印给定数组中第一个和最后一个数字相同的非回文数字的计数。
示例:
输入: arr[]={121,134,2342,4514} 输出: 2 说明: 2342 和 4514 是前后数字相同的非回文数字。因此,所需的输出为 2。
输入: arr[]={1,22,4545 } T3】输出: 0
方法:通过检查每个数组元素,不管是不是回文都可以解决这个问题。按照步骤解决问题。
- 穿越阵T2【arr】。
- 对于每个数组元素arr【I】,检查它是否是回文。
- 对于每个发现为非回文的数组元素,在反转数字之前和之后提取最后一位数字。提取后,检查数字是否相等。
- 如果发现是真的,增加计数。
- 最后,打印此类数字的计数。
下面是上述方法的实现:
C++
// C++ Program to implement
// the above approach
#include <bits/stdc++.h>
using namespace std;
// Function to reverse a number
int revNum(int N)
{
// Store the reverse of N
int x = 0;
while (N) {
x = x * 10 + N % 10;
N = N / 10;
}
// Return reverse of N
return x;
}
// Function to get the count of non-palindromic
// numbers having same first and last digit
int ctNonPalin(int arr[], int N)
{
// Store the required count
int Res = 0;
// Traverse the array
for (int i = 0; i < N; i++) {
// Store reverse of arr[i]
int x = revNum(arr[i]);
// Check for palindrome
if (x == arr[i]) {
continue;
}
// IF non-palindromic
else {
// Check if first and last
// digits are equal
Res += (arr[i] % 10 == N % 10);
}
}
return Res;
}
// Driver Code
int main()
{
int arr[] = { 121, 134, 2342, 4514 };
int N = sizeof(arr) / sizeof(arr[0]);
cout << ctNonPalin(arr, N);
}
Java 语言(一种计算机语言,尤用于创建网站)
// Java program to implement
// the above approach
import java.io.*;
class GFG{
// Function to reverse a number
static int revNum(int N)
{
// Store the reverse of N
int x = 0;
while (N != 0)
{
x = x * 10 + N % 10;
N = N / 10;
}
// Return reverse of N
return x;
}
// Function to get the count of non-palindromic
// numbers having same first and last digit
static int ctNonPalin(int arr[], int N)
{
// Store the required count
int Res = 0;
// Traverse the array
for(int i = 0; i < N; i++)
{
// Store reverse of arr[i]
int x = revNum(arr[i]);
// Check for palindrome
if (x == arr[i])
{
continue;
}
// IF non-palindromic
else
{
// Check if first and last
// digits are equal
if(arr[i] % 10 == x % 10)
Res += 1;
}
}
return Res;
}
// Driver code
public static void main (String[] args)
{
int arr[] = { 121, 134, 2342, 4514 };
int N = arr.length;
System.out.println(ctNonPalin(arr, N));
}
}
// This code is contributed by jana_sayantan
Python 3
# Python3 program to implement
# the above approach
# Function to reverse a number
def revNum(N):
# Store the reverse of N
x = 0
while (N):
x = x * 10 + N % 10
N = N // 10
# Return reverse of N
return x
# Function to get the count of non-palindromic
# numbers having same first and last digit
def ctNonPalin(arr, N):
# Store the required count
Res = 0
# Traverse the array
for i in range(N):
# Store reverse of arr[i]
x = revNum(arr[i])
# Check for palindrome
if (x == arr[i]):
continue
# IF non-palindromic
else:
# Check if first and last
# digits are equal
Res += (arr[i] % 10 == N % 10)
return Res
# Driver Code
if __name__ == '__main__':
arr = [ 121, 134, 2342, 4514 ]
N = len(arr)
print(ctNonPalin(arr, N))
# This code is contributed by mohit kumar 29
C
// C# program to implement
// the above approach
using System;
class GFG{
// Function to reverse a number
static int revNum(int N)
{
// Store the reverse of N
int x = 0;
while (N != 0)
{
x = x * 10 + N % 10;
N = N / 10;
}
// Return reverse of N
return x;
}
// Function to get the count of non-palindromic
// numbers having same first and last digit
static int ctNonPalin(int[] arr, int N)
{
// Store the required count
int Res = 0;
// Traverse the array
for(int i = 0; i < N; i++)
{
// Store reverse of arr[i]
int x = revNum(arr[i]);
// Check for palindrome
if (x == arr[i])
{
continue;
}
// IF non-palindromic
else
{
// Check if first and last
// digits are equal
if(arr[i] % 10 == x % 10)
Res += 1;
}
}
return Res;
}
// Driver code
public static void Main ()
{
int[] arr = new int[]{ 121, 134, 2342, 4514 };
int N = arr.Length;
Console.WriteLine(ctNonPalin(arr, N));
}
}
// This code is contributed by sanjoy_62
java 描述语言
<script>
// JavaScript Program to implement
// the above approach
// Function to reverse a number
function revNum(N) {
// Store the reverse of N
var x = 0;
while (N) {
x = x * 10 + (N % 10);
N = N / 10;
}
// Return reverse of N
return x;
}
// Function to get the count of non-palindromic
// numbers having same first and last digit
function ctNonPalin(arr, N) {
// Store the required count
var Res = 0;
// Traverse the array
for (var i = 0; i < N; i++) {
// Store reverse of arr[i]
var x = revNum(arr[i]);
// Check for palindrome
if (x == arr[i]) {
continue;
}
// IF non-palindromic
else {
// Check if first and last
// digits are equal
Res += arr[i] % 10 == N % 10;
}
}
return Res;
}
// Driver Code
var arr = [121, 134, 2342, 4514];
var N = arr.length;
document.write(ctNonPalin(arr, N));
</script>
Output:
2
时间复杂度: O(N * D)其中 D 是数组中最大数的长度。 辅助空间: O(D)
版权属于:月萌API www.moonapi.com,转载请注明出处