Qualcomm Interview Question
Testing / Quality AssurancesCountry: United States
Code in C#
static void swap(ref char c1,ref char c2)
{
char t=' ';
t = c1;
c1 = c2;
c2 = t;
}
static void Main(string[] args)
{
string _sample = "Suchit";
char[] ar=_sample.ToCharArray();
bool ispalin = true;
for (int i = 0, j = ar.Length - 1; i <= j; i++, j--)
{
if (ar[i] != ar[j])
ispalin = false;
swap(ref ar[i], ref ar[j]);
}
string s = new string(ar);
_sample = s;
Console.WriteLine(ispalin +" "+_sample);
}
Typo in the for loop, the for loop must be
. . .
for (int i = 0, j = ar.Length - 1; i < j; i++, j--)
{
. . .
private static char[] reverseString_in_Char_Array(String string) {
char[] str = string.toCharArray();
boolean isPalindrom = true;
int j = str.length - 1;
for (int i = 0; i < (str.length) / 2; i++) {
if (str[i] == str[j]) {
j--;
continue;
} else {
isPalindrom = false;
char temp = str[i];
str[i] = str[j];
str[j] = temp;
j--;
}
}
System.out.println("Palindrom" + isPalindrom);
return str;
}
/**
* 1
*
* @param str
* @return
*/
private static StringBuilder reverseString(String str) {
StringBuilder sb = new StringBuilder();
for (int i = str.length() - 1; i >= 0; i--) {
sb = sb.append(str.charAt(i));
}
return sb;
}
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
bool check(string str)
{
int len = str.length();
int start = 0;
int end = len-1;
bool flag = 1;
while(start < end)
{
if(str[start] != str[end])
{
flag = 0;
}
swap(str[start], str[end]);
start++;
end--;
}
if(flag != 0)
{
flag = 1;
}
cout << "Reversed string: " << str << endl;
return flag;
}
int main()
{
string str;
cout << "Enter string:" << endl;
cin >> str;
if(!check(str))
{
cout << "Not a palindrome" << endl;
}
else
{
cout << "Palindrome" << endl;
}
return 0;
}
public class palindrome {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String word = "ABCDEDCBA";
int count =0;
for(int i =0;i<word.length();i++)
{
if(word.charAt(i)==word.charAt(word.length()-1-i))
{
count++;
}
}
if(word.length()==count)
{
System.out.println("string is palindrome ");
}
else
{
System.out.println("string is not palindrome");
}
}
}
Improving the above code , Here I am just iterating upto middle of the string
public class Palindrome
{
public static void main(String[] args)
{
String str= "asdasdlkalsdkasakdslakldsadsa",revstr = "";
int count=0;
for(int i=1;i<=(str.length()/2)+1;i++)
{
if(str.charAt(i)==str.charAt(str.length()-i-1))
{
count++;
}
}
if(count==(str.length()/2)+1)
{
System.out.println("String is the palindrome!!! No need to reverse the string");
}
else
{
System.out.println("String is not palindrome: Reversing it ");
for(int i=str.length();i>0;i--)
{
revstr+=str.substring(i-1,i);
}
System.out.println(revstr);
}
}
}
C++ code to reverse as well as check if string is palindrom
int main()
{
void reverse(char *str, int length);
char arr[] = "mohhom";
reverse(arr, 6);
cout<<arr<<endl;
}
void reverse(char *str, int length)
{
int startIndex = 0;
int endIndex = length -1;
int palindromchecklength = 0;
for(startIndex , endIndex; startIndex<endIndex ; startIndex++, endIndex --)
{
if(str[startIndex] == str[endIndex])
{
palindromchecklength++;
}
else
{
str[startIndex] ^= str[endIndex];
str[endIndex] ^= str[startIndex];
str[startIndex] ^= str[endIndex];
}
}
if(palindromchecklength == length/2)
cout<<"palindrom";
}
String rev = "";
String oldString = str;
StringBuilder strb= new StringBuilder(str);
rev =strb.reverse().toString();
if(rev.equals(oldString))
{
//System.out.println("Palindrome");
}
else
System.out.println("No Palindrome");
System.out.println("Reverse of "+ str +" is = "+rev);
return rev;
#include<stdio.h>
#include<string.h>
main()
{ int i,j,k,n,s=0;
char str[20],str1[30],tmp;
printf("Enter the string\n");
gets(str);
int l=strlen(str);
for(i=0;i<l;i++)
{ str1[i]=str[l-i-1];
if(str[i]!=str1[i])
s++;
}
str1[i]='\0';
if(s==0)
printf("The string is pallindrome\n");
else
printf("The string is not pallindrome\n");
printf("The output string is %s\n",str1);
}
bool PalindromeReverse(char* inputstr)
{
char* start = inputstr;
char* end = inputstr;
char temp;
bool IsPalindrone = true;
while(*end) end++;
end--;
while(start < end) {
if (*start != *end){
temp = *end;
*end = *start;
*start = temp;
IsPalindrone = false;
}
start++;
end--;
}
return IsPalindrone;
}
bool PalindromeReverse(char* inputstr)
{
char* start = inputstr;
char* end = inputstr;
char temp;
bool IsPalindrone = true;
while(*end) end++;
end--;
while(start < end) {
if (*start != *end){
temp = *end;
*end = *start;
*start = temp;
IsPalindrone = false;
}
start++;
end--;
}
return IsPalindrone;
}
}
- sylvia.laurel.oak September 24, 2012